본문 바로가기

Studying/Operating System

(23)
04. Process Management (2/2), 05. CPU Scheduling (1/3) 1. 자원의 공유: 자식이 부모를 그대로 copy하기 때문에 메모리 낭비가 될 수 있음 -> 몇몇 OS에서는 일단 copy하지 않고 공유하고 있음-> 내용이 달라질 때까지 기다림 (Copy-on-Write, COW) 2. fork() 시스템 콜: fork() 수행 시 반환값으로 id를 반환함, fork() 수행한 시점에서 시작함 (Program Counter까지 복사됐기 때문에) 가. id가 0일 경우, 자식나. id가 0이 아닐 경우, 부모 3. exec() 시스템 콜-> execlp(): 인자로 넘겨진 새로운 프로그램을 실행 (일반적으로 자식에게 새로운 프로그램을 덮어씌울 때 사용) 4. wait() 시스템 콜: 호출한 부모는 sleep 상태(block 상태)로 만들고, 자식이 종료할 때까지 기다림 ..
04. Process Management (1/2) 1. 프로세스 생성가. 주체: 부모 프로세스가 자식 프로세스를 생성 (방법은 복제 생성) 나. 구조: 계층 구조(트리)다. 자원: 운영체제로 받고, 부모와 공유한다.1) 자원 공유: 부모와 자식이 공유하는 모델과 공유하지 않는 모델이 있다.라. 수행(Execution): 부모와 자식이 공존하는 모델과 부모가 자식이 종료할 때까지 기다리는 모델이 있음마. 복제법: 자식이 부모 공간의 복사함 (복제한 곳을 새로운 프로그램으로 덮어쓸 수도 있음)ex) 1) fork() 시스템 콜을 활용해 새로운 프로세스를 생성2) exec() 시스템 콜을 통해 새로운 프로그램을 메모리에 올림3-1) 자발적으로 exit() 시스템 콜을 통해 종료시킴가) 자식이 부모에게 데이터를 보냄(자식이 wait 시스템 콜을 통해서)3-2)..
03. Process (2/3), (3/3) 1. Thread: CPU를 이용하는 기본 단위-> 같은 작업을 하는 새로운 프로세스를 만들 경우, 프로세스를 만들기 위한 여러 가지 것들이 중복을 필요하는 문제가 발생-> Thead를 활용하면 Thread에 필요한 부분만 추가로 만들면 됨가. 구성 1) 공유하지 않는 부분(thread 생성 때마다 독립적으로 생기는 부분) 가) program counter나) register set다) stack space2) 공유하는 부분가) code section나) data section다) OS resource나. 특징 1) 다중 스레드로 구성하면 한 스레드가 blocked(wait) 상태일 동안 다른 스레드가 running 상태가 되어 빠르게 처리할 수 있음2) 동일한 일을 수행할 때, 다중 스레드가 협력하여 ..
03. Process (1/3) 1. Process: 실행 중인 프로그램가. 프로세스의 문맥(Context) - 특정한 시점을 놓고 봤을 때, 어느 것을 수행하는 지 1) CPU 수행 상태를 나타내는 하드웨어 문맥: 레지스터가 어떤 값을 가지고 있고 PC가 어디인지 가) Program Counter나) 각종 register 2) 프로세스의 주소 공간: 어떤 영역에 있는가 가) code나) data다) stack 3) 프로세스 관련 커널 자료 구조 가) PCB(Process Control Block): 프로세스가 시작할 때마다 프로그램의 상태를 알려주는 자료구조 나) Kernel stack: 프로세스가 운영체제의 커널의 함수를 수행하는 공간 (유저 프로그램의 스택과 유사) 2. 프로세스의 상태가. Running: CPU를 잡고 instr..
02. System Structure & Program Execution (2/2) 1. System call: 운영체제의 함수를 호출하는 것 2. 입출력 (동기/비동기) 가. 동기식 입출력(Synchronous I/O): I/O 장치의 결과를 보고, 사용자 프로그램에 넘어감1) 구현법1: I/O가 끝날 때까지 CPU 낭비시킴 (매 시점 하나의 I/O만 일어남)-> CPU와 I/O 둘 다 낭비 2) 구현법2: I/O 요청을 한 후, CPU는 다른 프로세스에 넘겨줌 나. 비동기식 입출력(Asynchronous I/O): I/O 장치의 결과를 기다리지 않고 사용자 프로그램에 넘어감-> 두 가지 모두, I/O의 완료는 Interrupt로 알려줌*순서) 사용자 -> 커널에 I/O 요청 -> 사용자에게 바로 다시 넘어오냐, 결과를 보고 넘어오냐 3. DMA(Direct Memory Access)..
02. System Structure & Program Execution (1/2) 1. 컴퓨터 주요 구조가. 컴퓨터: CPU, Memory나. I/O Device: 디스크, 모니터, 마우스, 키보드 2. 기능 가. timer: 특정 프로그램이 CPU 독점을 막기 위해 정해진 시간 할당 (time sharing) 나. mode bit: 0이면 CPU가 모든 것을 할 수 있음, 사용자 프로그램에게 CPU를 넘겨줄 때 1로 바꿔 제약을 줌다. Device Controller: I/O 장치를 관리하는 일종의 CPU와 유사한 것 -> hardware cf) device driver: OS 코드 중 각 장치별 처리 루틴 -> software 라. DMA Controller: CPU가 너무 많은 Interrupt가 있을 경우 효율이 떨어지므로 CPU가 아니여도 메모리에 접근할 수 있게 한 장치마...
01. 운영체제 - 도입 운영체제: 컴퓨터 시스템의 자원을 효율적으로 관리(프로세서, 기억장치, 입출력 장치) CPU를 어떻게 할당?얼마만큼 할당? 메모리 공간을 어떻게 할당? --- 1.정의: 운영체제는 하드웨어 바로 위에 설치되는 소프트웨어 가. 좁은 의미: 커널(메모리에 항상 상주하는 부분)나. 널은 의미: 커널을 포함한 주변 시스템을 다루는 유틸리티를 포함 2. 목적가. 하드웨어(컴퓨터 시스템의 자원)를 효율적으로 관리(하드웨어 자원과 소프트웨어 자원) 나. 컴퓨터 시스템을 편리하게 사용하게 해주는 것 3. 분류가. 동시 작업 가능1) 단일 작업(single tasking) 2) 다중 작업(multi tasking): 현대의 대부분 OS 나. 사용자의 수 (계정을 만들어서 동시 접속 가능 여부) 1) 단일 사용자(sing..