본문 바로가기

강의노트/운영체제

(15)
[운영체제] 3주차: Review (1) Chapter 1 운영체제의 정의, 구성 요소, 작업 교수님 피셜) 거의 컴퓨터구조론 내용에 대한 review, 그냥 교양 느낌으로 봐라 OS는 resource allocator: H/W, S/W 등의 자원을 배분하는 역할을 한다. control program: 시스템에 치명적인 영향을 줄 수 있는 작업을 방지한다. Ex) 무한루프 -> 자원을 무한정 사용, 운영체제나 다른 프로세스의 메모리 영역 침범 Trap: Software interrupt - syscall과 관련이 있다. Multiprocess 여러 개의 프로세스가 있다. 각 프로세스에는 독자적인 Register와 Cache가 있다. Memory는 System bus를 통해 공유한다. -> 바틀랙? 바틀랩?? 몇 번을 들어도 뭔지 모르겠다. 중요..
[운영체제] 2주차 (3) 여기부터 4장 Thread 프로세스보다 더 작은, CPU 활용 단위 -> Process처럼 ID, Program counter, register set, stack을 갖게 된다. 같은 프로세스 내에 있는 스레드들은 프로그램 코드, 데이터 등 OS가 제공하는 자원을 공유한다. 왜 멀티스레드인가? 멀티프로세스처럼 modular하게 SW를 만들 수 있고, 반응속도도 개선되고, 정보 공유도 쉬워진다. 멀티프로세스보다 더 경제적으로 유리해지고, 프로세스 생성보다 비용이 적게 들고 간편하다. : 프로세스를 만들려면 그를 위한 메모리 공간을 할당해줘야 하지만 스레드 생성은 동일한 메모리 공간 내에서 이루어지므로 더 빠르게 생성된다. Ex) Web server ① Request: Client -> Serv ② Serv..
[운영체제] 2주차 (2) 여기부터 3장 2장에서 제일 중요한 건 System call Process 실행 중인 프로그램: 디스크에 있는 프로그램 + 프로그램 실행을 위한 resource들 Ex) 메모리: Stack, Heap, Text section, Program counter, Data section(전역변수 저장)... Text: 프로그램 코드 Data: (초기화된)전역변수, 정적 변수 (bss: 초기화되지 않은 전역변수) Heap: 동적 메모리 Stack: 지역변수나 etc Time shared 에서 관리하는 기본 단위 I/O Bound Process: I/O 작업을 많이 하는 프로세스 CPU-Bound process: CPU 작업을 많이 하는 프로세스 실행하는 동안 종료 시까지 자신의 상태를 변화시킨다. - new: 프..
[운영체제] 2주차 (1) 운영체제도 소프트웨어다 -> 여러 형태로 구현할 수 있다: 운영체제마다 각 운영체제의 Software architecture가 달라진다 MS-DOS 초창기의 OS 초창기라 HW 스펙이 떨어짐 -> 최소한의 메모리 공간 모듈 X, 필요에 따라 Component 생성 후 component끼리 communication함 Application이 바로 ROM BIOS에 접근할 수 있다 -> 프로그램 때문에 컴퓨터 전체가 맛탱이가 갈 수도 있음 UNIX(초창기) Monolistic structure 다음의 두 부분으로 구성 - System programs - Kernel: 하드웨어 위, System call 아래 필요에 따라 Kernel에 기능이 포함되어 있음(약간 주먹구구) Layered approach OS의 ..
[운영체제] 1주차 (3) - 운영체제: Application(최상위)이 Hardware(최하위)를 사용하기 편리하게 하는 SW - OS is interrupt-driven: 인터럽트 없이는 아무것도 안 한다 - HW interrupt VS SW interrupt(a.k.a trap) - Dual-mode operation & Timer / 모드는 여러 개일 수 있음 Ex) ARM processor: 8개 모드 User and other system programs UI(GUI / Batch / Command line) System calls Service 운영체제 Hardware Service: 프로그램 실행, I/O operations, File systems, Resource allocation, ... System call..
[운영체제] 1주차 (2) 50년 전에는 컴퓨터가 (지금에 비해 스펙이 훨씬 낮음에도) 너무 비쌌다. -> 어떻게 해야 효율적으로 쓸 수 있을까? = CPU와 I/O 장치를 항상 바쁘게 해서 시스템 효율을 높이려면? Single user 시스템에서는 CPU와 I/O를 바쁘게 만들 수 없다. : CPU 작동 중에 디스크 작업을 하려면 CPU 작업은 중단해야 함 -> 둘 다 바쁠 수 없어 전체 효율이 떨어짐 -> Multiprogramming(Batch system) Multiprogramming(Batch system) 기존처럼 하나만 메모리에 올리는 대신 여러 개의 program job(Program job subset)을 올린다 * 참고 왜 process가 아니라 job일까? 예전에는 개인 별로 컴퓨터를 쓰는 게 아니라 프로그래..
[운영체제] 1주차 (1) Introduction 최상위: Application 그 사이: 운영체제 최하위: Hardware -> 애플리케이션에서의 하드웨어 사용을 편리하게 하는 것이 궁극적인 목적 Ex) 파일을 더블클릭하면 ① 실제 메모리에 가용 공간이 있는지 확인 ② 디스크에서 그 파일이 저장된 위치를 찾음 ③ 해당 파일을 메모리에 적재하고 ④ 프로세스로 만들어 ⑤ CPU에 그 프로세스를 할당해 프로그램을 실행 + 필요에 따라 디스크IO, 콘솔 입출력 등도 시행 이러한 작업을 OS가 수행함 Chapter 1 운영체제란 무엇인가? 사용자와 하드웨어 사이에 존재하는 소프트웨어 -> OS의 중요한 역할: 컴퓨터 하드웨어 관리 컴퓨터는 3가지 component로 구성된다 - Processing Unit: CPU 등 - I/O Syst..