목록CS/OS (16)
예지의 테크 로그포스 (Yeji's Tech Log Force)
Virtual machine 한 시스템 상에 여러 개의 운영체제, 혹은 다른 운영체제를 실행할 수 있도록 해주는 시스템을 뜻한다. Trace 프로세스를 실행하는 명령 순서 Dispatcher 프로세서를 한 프로세스에서 다른 프로세스로 전환하는 작은 프로그램. Quantum Time Sharing에서 시간별로 넘어가는 단위. 양자라는 뜻대로 퀀텀보다 더 짧게(쪼개서) 실행되지는 않는다. (최소 단위)
- Suspended processes 프로세스를 실행하다 I/O wait이 생겨 Blocked 시키다가 꽉 차면 그 다음 기능을 처리하기 위해 Suspend한다. Blocked 된 것의 일부를 Suspend. Suspend State의 Process는 Memory에 못 들어가고 Disk에 있다. Activate: Suspend에서 Ready로 가는 것 Swapping: 이렇게 Activate와 Suspend로 왔다갔다 하는 것 - Suspend 를 하는 이유 1. Swapping. 앞서 말한 개념(자리가 없어서(꽉 차서)) 2. 우선순위가 낮은 큐로 만들기 위해서 3. 유저의 요청 4. 타이밍 5. 부모 프로세스의 요청
Mutual Exclusion 방법 1. Compare & Swap while문을 돌면서 크리티컬 섹션에 접근이 가능한 상태인지 (bolt=0 등) 계속체크하며 대기한다. 이 방식은 계속 cpu를 잡아먹는 busy_wating이 발생한다. 2. Semaphore 크리티컬 섹션에 들어가기 전에는 자원을 쓴다는 표시로 sem_wait (값을 감소), 자원을 다 썼으면 semSignal(값을 증가)를 처리해서 mutual_exclusion을 한다. 이건 busy_wating이 없다. 이 외에도 많은 방법이 존재한다. Mutual Exclusion을 할 때 유의해야 할 점 1. 공유개체에 대해 한 번에 하나의 프로세스면 사용 가능. 2. deadlock이나 starvation이 없어야 함. 3. 프로세스를 사용..
1. Programmed I/O I/O 모듈이 주기적으로 하나씩 체크한다. I/O 끝날때까지 기다렸다가 함. 그러므로 성능은 떨어진다. 2. Interrupt-Driven I/O 현재 진행하던 명령어를 마친 후 Interrupt체크를 한다. 3. Direct Memory Access (DMA) CPU는 명령어(read/write/시작주소 등)만 넘겨주고 나머지는 I/O랑 메인메모리가 한다. => 2번과 달리 cpu절약이 가능하다.