CS/OS
-
[OS] SuspendCS/OS 2023. 2. 26. 16:34
- 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. 부모 프로세스의 요청
-
[OS] Mutual Exclusion의 방법과 유의점CS/OS 2023. 2. 26. 16:23
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. 프로세스를 사용..
-
[OS] I/O techniques(IO에서 데이터를 전송할 때)CS/OS 2023. 2. 26. 16:18
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절약이 가능하다.
-
[OS] The Memory HierarchyCS/OS 2023. 2. 26. 16:08
registers cache MainMemory Magnetic Disk(CD, DVD) Magnetic tape 아래로 내려갈수록 용량증가, 액세스 시간 증가, 프로세서의 메모리 액세스 빈도 감소 - Principle of Locality 참조하고자 하는 프로세스들은 뭉쳐있다. (10을 수행 후 11을 수행하지, 5000을 수행하진 않는다는 의미) Cache: OS에 보이지 않는다. 다른 메모리 관리 하드웨어와 상호작용한다. 프로세서가 주기마다 메모리에 액세스 해야 한다. 작고 빠르며 locality가 있다. 메모리 사이클 시간에 의해 프로세서 실행이 제한된다.
-
[OS] Process switching 과정(Change of process state)CS/OS 2023. 2. 26. 16:02
1. Save the context of the processor 현재 프로세서의 상태(pc값, cpu의 레지스터 등)을 pcb에 저장한다. 2. Update the process control block of the process currently in the ( running ) state 현재 실행(running)중인 프로세스를 blocked/ ready/ suspend로 바꾼다. 3. Move the process control block of this process to the appropriate queue 4. Select another process for execution 들어올 프로세스를 고른다(스케줄링에 따라) 5. Update the process control block of th..
-
[OS] Deadlock 탐지를 위한 Coffman Algorithm 사용법CS/OS 2023. 2. 26. 15:58
1. 요청한 자원 매트릭스 & 할당되어있는 매트릭스 & 사용할 수 있는 자원 벡터를 작성한다. 2. 할당되어 있는 매트릭스(Allocation)에서 아무것도 Hold하지 않고 있는 프로세스는 Marked 한다. ex) Marked=(P4) (Marked는 Deadlock에 걸리지 않는 Process List) 3. available자원 or 사용 가능하게 될 자원은 W에 기록한다. ex) W=(00001) 4. W를 이용하여 끝낼 수 있는 Process가 있다면 그 Process는 Marked에 추가하고, 그 Process의 allocation+requese(쓰던것과 요청한것)을 다 썼다고 가정, W에 추가한다. 5. 이를 반복했을 때, Marked되지 않은 프로세스는 Deadlock이라고 판단할 수 있다.