본문 바로가기

cs4

06. Process Synchronization 데이터 접근(intro) 컴퓨터 시스템 안에서 어떻게 데이터가 접근하는가? Race Condition(경쟁 상태) 과연 컴퓨터에 경쟁상태가 많이 생길까? CPU라는 것은 자기의 주소공간만 본다아! 그래서 문제가 안생길거처럼 보이는데, CPU가 여러개 있는 멀티 CPU 프로세서 상태에서는 아닐 것! 특히 프로세스들이 본인 직접실행할 수 없을 경우 커널의 코드가 실행될 경우. OS에서 race condtion은 언제 발생하는가? Kernel 수행 중 인터럽트 발생시 Process가 System call을 하여 kernel mode로 수행 중인데 context switch가 일어나는 경우 Multiprocessor에서 shared memory 내의 kernel data Process Synchronizatio.. 2019. 7. 28.
05. CPU Scheduling-01 CPU Scheduling 스케줄링 알고리즘을 크게 2개로 나누면 (=강제로 빼앗지 않는 방법) 비선점형 Nonpreemptive (=강제로 빼앗는 방법) 선점형 preemptive CPU의 성능척도는? CPU utilization(이용률) - keep the CPU as busy as possible - CPU가 놀지 않고 일을 하는 시간 Throughput(처리량) - # of processes that complete their execution per time unit - 주어진 시간동안 몃개의 작업을 처리 했는가? Turnaround time(소요시간, 반환시간) - amount of time to execute a particular process - CPU를 쓰러 들어와서 다쓰고 I/O하러 .. 2019. 7. 28.
04. Process Management 프로세스 관리 프로세스 생성(Process Creation) Copy-On-Write(COW) 기법 부모프로세서의 코드데이터스택을 그대로 복사하기보다는 write가 발생할 때 Copy 하겠다. 그 이전까지는 부모프로세스의 코드데이터스택을 공유한다. 가능하면 공유하고 원칙적으로는 독립적이다. 부모 프로세스가 자식 프로세스를 복제해서 생성됨 프로세스의 트리(계층 구조)형성 프로세스는 자원을 필요로 함 운영체제로부터 받는다. 부모와 공유한다. 자원의 공유 부모와 자식이 모든 자원을 공유하는 모델 일부를 공유하는 모델 전혀 공유하지 않는 모델 수행(Execution) 부모와 자식은 공존하며 수행되는 모델 자식이 종료(terminate)될 때까지 부모가 기다리는(wait)모델 주소 공간(Address space).. 2019. 7. 28.
왜 세마포어(Semaphore)가 생겼나? 왜 세미포어가 생겼나? 프로세스 간 메시지를 전송하거나, 공유메모리를 통해 특정 데이터를 공유하게 되는 경우 문제가 발생할 수 있습니다. 즉, 공유된 자원에 여러 개의 프로세스가 동시에 접근하면서 문제가 발생하는 것으로써 공유된 자원 속 하나의 데이터는 한 번에 하나의 프로세스만 접근할 수 있도록 제한해 두어야 하기 때문에, 이를 위하여 고안된 것이 바로 Semaphore 입니다. Cf) 세마포어와 뮤텍스의 차이는? 세마포어는 공유된 자원의 데이터를 여러 프로세스가 접근하는 것을 막는 것. 뮤텍스는 공유된 자원의 데이터를 한 쓰레드가 접근하는 것을 막는 것. 컴퓨터가 여러 프로그램을 동시에 수행하는 다중 프로그래밍 시스템에서는 프로세스들간의 상호배제와 동기화를 위한 기본적인 연산이 필요하게 되고 세마포어.. 2019. 7. 21.