본문 바로가기

CS/운영체제

(20)
[운영체제] 6. Process Synchronization (4) 더보기 kocw 반효경 교수님의 운영체제 강의를 수강 후 작성한 글입니다. 1. Monitor Semaphore의 문제점 - 코딩하기 힘들다. - 정확성의 입증이 어렵다. - 자발적 협력이 필요하다. - 한번의 실수가 모든 시스템에 치명적 영향을 미친다. 예) V(mutex); critical section P(mutex); P, V 순서가 뒤바뀜 → Mutual exclusion이 깨지는 문제 발생 P(mutex); critical section P(mutex); 공유데이터를 반납하는 코드 없음 → Deadlock Monitor 동시 수행중인 프로세스 사이에서 abstract data type의 안전한 공유를 보장하기 위한 high-level synchronization contruct. 모니터 내의 ..
[운영체제] 6. Process Synchronization (=Concurrency Control) (3) 더보기 kocw 반효경 교수님의 운영체제 강의를 수강 후 작성한 글입니다. 1. Synchronization Hardware 하드웨어적으로 Test & Modify를 atomic하게 수행할 수 있도록 지원함으로써 not progress 문제를 해결할 수 있다. Test & Set 명령어를 따로 수행한다면, Set 이후 context switch가 발생하여 Algorithm2와 동일한 문제가 발생할 수 있다. Test_and_Set 회로를 만들면 하나의 operation처럼 수행함으로써(atomic) 문제를 해결한다. Mutual Exclusion with Test & Set Synchronization variable : boolean lock = false; Process Pi do { while(Te..
[운영체제] 6. Process Synchronization (2) 더보기 kocw 반효경 교수님의 운영체제 강의를 수강 후 작성한 글입니다. 1. The Critical-Section Problem n개의 프로세스가 공유 데이터를 동시에 사용하기를 원하는 경우, 각 프로세스의 code segment에는 공유 데이터를 접근하는 코드인 critical section이 존재한다. Problem: 하나의 프로세스가 ciritical section에 있을 때, 다른 모든 프로세스는 critical section에 들어갈 수 없어야 한다. 충족 조건 1. Mutual Exclusion 프로세스 Pi가 critical section 부분을 수행 중이면 다른 모든 프로세스들은 그들의 critical sectoin에 들어가면 안 된다. 2. Progress 아무도 critical se..
[운영체제] 6. Process Synchronization (1) 더보기 kocw 반효경 교수님의 운영체제 강의를 수강 후 작성한 글입니다. 1. Race Condition Race condition(경쟁 상태): Race condition이란 두 개 이상의 프로세스가 공통 자원을 병행적으로 읽거나 쓰는 동작을 할 때, 공유 데이터에 대한 접근이 어떤 순서에 따라 이루어졌는지에 따라 그 실행 결과가 같지 않고 달라지는 상황을 말한다. 경쟁 상태라는 말 그대로, 두 개 이상의 프로세스(스레드)가 하나의 자원에 접근하기 위해 경쟁함을 의미한다. Storage-Box(Memory, Address space)를 공유하는 Execution-Box(Cpu, Process)가 여러개 있는 경우 Race condition이 발생할 가능성이 있다. ex) Multiprocessor s..
[운영체제] 5. CPU Scheduling (2) 더보기 kocw 반효경 교수님의 운영체제 강의를 수강 후 작성한 글입니다. 1. Multilevel Queue Ready queue를 여러 개로 분할 foreground(interactive) background(batch - no human interaction) 각 큐는 독립적인 스케줄링 알고리즘을 가짐 foreground - RR background - FCFS 큐에 대한 스케줄링이 필요 Fixed priority scheduling serve all from foreground then from background possibility of starvation Time slice 각 큐에 CPU time을 적절한 비율로 할당 eg) 80% to foreground in RR, 20% to back..
[운영체제] 5. CPU Scheduling (1) 더보기 kocw 반효경 교수님의 운영체제 강의를 수강 후 작성한 글입니다. 1. 프로세스 특성 분류 I/O-bound process cpu를 잡고 계산하는 시간보다 I/O에 많은 시간이 필요한 job Interactive job -> 적절한 response 제공이 필요 many short CPU bursts CPU-bound process 계산 위주의 job - 중간에 I/O가 거의 끼어들지 않음 few very long CPU bursts 2. CPU Scheduler & Dispatcher CPU Scheduler : Ready 상태의 프로세스 중에서 이번에 CPU를 줄 프로세스를 고른다. (하드웨어가 아닌 운영체제 안 특정 코드를 의미함) Dispatcher : CPU의 제어권을 CPU Schedu..
[운영체제] 4. Process Management 더보기 kocw 반효경 교수님의 운영체제 강의를 수강 후 작성한 글입니다. 1. 프로세스 생성 부모 프로세스가 자식 프로세스를 생성하여 프로세스의 트리(계층 구조)를 형성하게 된다. 프로세스는 자원을 필요로 한다 운영체제로부터 받는다(메모리와 CPU 할당) 부모와 공유 자원의 공유 부모와 자식이 모든 자원을 공유하는 모델 일부를 공유하는 모델 ex) Copy on write 모델 -> write가 발생하면 그때 copy를 함. 그 전까지는 부모의 자원을 공유. 전혀 공유하지 않는 모델 -> 일반적인 경우. 부모와 자식 프로세스가 자원을 서로 경쟁함 수행 부모와 자식이 공존하며 수행되는 모델 자식이 종료될 때까지 부모가 기다리는(wait, 즉 blocked 상태) 모델 프로세스를 생성하면 자식은 부모의 공..
[운영체제] 3. Process (2) 더보기 kocw 반효경 교수님의 운영체제 강의를 수강 후 작성한 글입니다. 1. Thread "A thread (or lightweight process) is a basic unit of CPU utilization" Thread의 구성 (각각의 Thread가 독립적으로 가지는 부분) Program Counter register set stack space Thread가 동료 thread와 공유하는 부분(=task) code section data section OS resources 2. Thread의 장점 - Responsiveness 다중 스레드로 구성된 태스크 구조에서는 하나의 서버 스레드가 blocked(waiting) 상태인 동안, 동일한 태스크 내의 다른 스레드가 실행(running)되어 ..