기록을 남기자

Computer Science/운영체제 29

카테고리 설명
  • Disk Scheduling 1. First-in, First-out (FIFO) 큐에 먼저 들어온 request 부터 처리한다. 2. Shortest Service Time First 실행시간이 짧은 request 부터 처리한다. 3. SCAN 굉장히 공정한 방법이다. Starvation 발생 가능성이 거의 없다. (완벽하게 없진 않다. 특정 트랙에 계속해서 request 가 쏟아지면 진행을 못할 수도 있기 때문이다.) → 완벽하게 fair 하냐? X, 어떤 상황에서 완벽하게 fair 하지 않나? 디스크 안에 여러 트랙이 있는데 중간 트랙에 있는 request가 있고 안쪽끝과 바깥쪽 끝에 있는 request가 있다. request가 딱 도착을 했을 때 헤더가 그 트랙에 대한 서비스를 끝마치고 트랙을 막..

  • Operating System Design Objectives I/O I/O cannot keep up with processor and main memory speed ==> Efficiency is an important issue I/O 에서는 속도가 매우 중요하다. 하드디스크 성능이 나쁘게 되면 아무리 CPU 나 메모리가 좋아도 성능이 올라갈 수 없다. Uniform Desirable to handle all I/O devices in a uniform manner ==> Generality is an important issue I/O device 들을 access 하는데 uniform 한 방법으로 access 하고 싶다. monitor이든 file 이든 입출력시 동일한 명령을 사용해서 같은 방..

  • Windows System Scheduling Real-time task → Round-Robin 방식 사용 ↳ 언제나 우선순위 기반의 Preemptive Scheduling 기법이다 🌟 내가 어떤 task 를 실행하고 있다가도 이거보다 조금이라도 우선순위가 높은 프로세스가 갑자기 시스템에 새로 들어오면 하던 거 중단하고 새로 들어온 프로세스를 서비스한다. Non-Real-time task → Feedback 방식 사용 ↳ 계속 CPU 를 사용하면 우선순위가 내려가고 CPU 를 사용하면 우선순위가 올라간다. 프로세스들이 한 번 Ready Queue 에 들어가면 끝날 때까지 작업하는 것이 아니라 Ready Queue 에 갔다가 I/O 작업 했다가 Ready Queue 에 갔다가, ... 한 번 Ready ..

  • Design Issues 프로세스가 시스템 안에 들어왔을 때 이 프로세스를 어느 CPU 에게 할당해줄 것 인가? CPU 마다 개별적인 Queue 를 줄 것인지? Global Queue 를 줄 것인지? ✅ MultiProgramming? Uni-Processor 에서는 MultiProgramming 은 당연한 것 Block 은 주로 I/O 작업에 의해서 발생하는데, 하나의 application 안에서 여러개의 프로세스들 또는 스레드들이 만들어져서 굉장히 빈번하게 동기화를 한다고 했을 때의 Block 상태는 I/O 작업을 위한 Block 이 아니라 동기화를 위한 Block(Semaphore Wait) 또는 데이터를 주고 받기 위한 Block 과 같은 상황이 주이다. 이 경우, Switching 을 하는 것보..

  • 우선순위의 기준이 무엇이냐에 따라 좋은 스케쥴러가 달라진다. 우선순위: Queue 에 들어온 순서 공정성 ↑ 예측가능성 ↑ : 내가 언제 실행을 끝낼 수 있는지 예측할 수 있음 SPN (Shortest Process Next), SRT (Shortest Remaining Time) Response Time 이 중요한 시스템에서 좋다. 그러나 시간예측과 Starvation 의 문제점이 있다. Response Time Fairness SRT(Shortest Remaining Time) Round-Robin SPN(Shortest Process Next) FCFS(First-Come-First-Service) Preempted ↔ Non-Preempted : 기준으로도 나눌 수 있다. Preempted Non..

  • 9장에서의 CPU 는 1개만 존재한다. Replacement 의 성능 → Page Fault 수가 증가하면 성능이 낮아진다. Aim of Scheduling Response time Throughput Processor efficiency Fairness 위의 네가지가 스케쥴링의 목표이지만, 애매하고, 동시 만족이 불가능하다. 1. Response time Input ↔ Output 사이의 걸리는 시간 응답 시간이 짧으면 짧을 수록 좋다. 2. Throughput User 의 관점이 아니라 시스템의 관점에서 단위 시간 동안 몇 개의 request 를 완료했는지를 말한다. ⇒ 크면 클수록 성능이 높아진다. 3. Processor efficiency CPU 가 의미 있는 일에 사용된 시간 CPU 는 OS 실..

  • Translation Lookaside Buffer Relocation 을 위해서 Page Table 을 이용한다. Page Table 에는 두가지 종류가 있다. hierarchical page table inverted page table hierarchical page table 을 사용할 때는 Page Table 자체가 크기 때문에 이게 2, 3, 4, ... 단계 page table 이 될 수 있다. 2단계 페이지 테이블의 경우 데이터 읽기 → Root Page Table → 2nd Page Table → 정확한 Physical Address 주소 획득 → memory ⇒ 데이터를 읽을 때, memory 에 3번 access ex) 보통 프로그램을 실행할 때 코드 → 데이터 → 코드 → 데이터 →..

  • Types of Memory Real Memory Main Memory Physical 한 메모리 자체를 말한다. Virtual Memory Main Memory + Memory on disk 전체 프로그램을 모두 메모리에 넣지 않고, 프로그램의 일부만 메모리에 넣고 실행을 시키는 방식. 전체 프로그램 중 일부는 진짜 Physical 한 메모리에 들어 있고 나머지는 hard disk에 들어있는채로 시작한다. Execution of a Program Resident set 전체 프로그램 중 메모리에 올라와 있는 부분(page, segment) Interrupt 프로세스가 주소에 접근하려는데, 메모리에 올라와 있지 않은 주소가 필요한 경우 OS 가 Interrupt 를 건다. → 현재 프로세스 Blocked..