컴퓨터 하드웨어 바로 윗단에 설치되는 소프트웨어운영체제는 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층이다.소프트웨어가 컴퓨터 시스템에서 실행되기 위해서는 메모리에 그 프로그램이 올라가 있어야 한다.⇒ 운영체제 자체도 하나의 소프트웨어로서 전원이
Computer Component: Top-Level View Program Execution Fetch Stage PC에 들어있는 300은 Step1 이전에 들어 있었던 것이다. PC에 300이 들어 있다고 해서 우리가 메모리 300번지에 있는 명령어를 읽어올
System call : User Program에서 OS에게 I/O같은 것을 요청하는 것User Program이 WRITE라는 System call을 호출한다.WRITE는 함수 호출이지 명령문이 아니다.→ print, scanf는 명령문이 아니라 함수 호출문이다.4번
OS가 무엇이냐?⇒ OS는 프로그램이다!OS는 Application의 실행을 control하는 프로그램이다.→ OS는 Application을 최소로 방해해야한다.Application과 Hardware를 연결하는 인터페이스 역할을 하는 프로그램이다.→ Programmer
OS가 하는 주된 역할들→ 정리된 것들이다. = 모든 OS들은 방법은 달라도 모두 밑의 기능들을 가지고 있다.실행 중인 프로그램컴파일 → 이진코드로 하드디스크에 저장이 되어 있다.이 프로그램을 실행시키면 메모리에 올라가서 실행이 되게 된다.실행하고 있는 프로그램을 OS
OS는 프로그램을 정확하게, 효율적으로 관리해야한다. Application Program 을 관리하는 것이 첫 번째 일이다. OS는 시스템 안에서 실행되는 모든 프로그램을 관리할 때 어떤 형태의 자료구조 안에 넣고 관리를 하는가를 알아보도록 하자. Process >
OS 또한 Program이기에 Memory의 공간을 차지한다. tree가 pointer와 연결되어 있다. Primary Processiable 또한 OS에서 관리한다. Swapping Area에는 하드디스크일지라도 File Area에 들어 있는 실행 파일과 다르게
OS의 실행방식 세가지 1. Non-process kernel OS Kernel을 별개의 객체로 보는 방식이다. 각 Process 관리 방식 != OS kernel 관리 방식 OS는 특별한 권한을 가지고 있다. OS는 별개의 entity로 시스템 안에서 실행되는 객체
한 프로그램 안에 여러개의 Thread를 생성한다.여러개의 Thread를 만드는 것과 여러개의 Process를 만드는 것의 차이를 알아야 한다.Parent Process가 Child Process를 만들라는 명령어→ Child Process는 Parent Process
Process가 독립적으로 Ready Queue에 들어간다. OS가 Process를 실행시키는 순서를 계속 바꿀 수 있다.→ 이는 Process가 독립적이고 별개이기에 가능한 것이다.Thread가 독립적으로 Ready Queue에 별개의 실행단위로 들어간다.OS가 Th
이 중, 주목해봐야할 관계는Threads : Processes = 1 : M스레드가 1개인데 프로세스가 여러개인 형태이다.위의 시스템은 프로세스가 여러개인데, 스레드가 1개이다.P1, P2, P3가 같은 컴퓨터 시스템 안에 있는 경우라면 이런 방식은 말이 안된다.P1,
최신 운영 체제 설계의 핵심은 여러 프로세스 를 관리하는 것이다.시스템이 프로그램을 1개만 실행한다면, OS가 복잡할 이유가 없다.⇒ 시스템이 여러 프로그램을 동시에 실행하려고 하기 때문에 문제가 발생하고 이 문제를 해결하기 위해 OS가 복잡해지는 것이다.여러가지 프로
Mutual Exclusion이 지켜지는 것 중요DeadLock이 걸릴 경우의 수 존재 → 둘 다 true이면 while문을 둘 다 돌게 된다.DeadLock과 LiveLock의 차이점 = while문을 빠져나올 가능성내가 Critical Section에 들어가려면,w
Requirements for Mutual Exclusion Mutual Exclusion Mutual Exclusion : 전체 코드가 아닌, Critical Section code 가 한 번에 하나의 프로세스만 실행할 수 있도록 하는 것. Mutual Exclus
semWait : Process 를 Block 시킬 수 있는 명령어이다.semSignal : 내가 아니라 Queue에 있는 프로세스를 Ready로 옮겨 실행할 수 있게 해준다.Semaphore는 Critical Section뿐 아니라, 많은 동기화 문제에 사용된다.↳
어떤 상황에서 프러세스가 기다려야 하는가?프로세스가 몇 개의 Queue로 나뉘어져 관리가 되어야 하는가? → Queue의 개수를 결정해야 한다.Queue의 수만큼 Semaphore를 생성한다.→ Semaphore 1개당 Queue 1개Semaphore에는 딱 두가지 함
최신 운영 체제 설계의 핵심은 여러 프로세스 를 관리하는 것이다.시스템이 프로그램을 1개만 실행한다면, OS가 복잡할 이유가 없다.⇒ 시스템이 여러 프로그램을 동시에 실행하려고 하기 때문에 문제가 발생하고 이 문제를 해결하기 위해 OS가 복잡해지는 것이다.여러가지 프로
Fetch Stage → Execute Stage → Interrupt Stage왜 Fetch, Execute 이후에서야 Interrupt가 처리될까?Interrupt가 처리된 이후에는 PC가 복귀가 되어 PC에 저장된 다음 명령어가 실행되기 때문에 이전 명령어는 처리
deadlock을 아예 발생시키지 않으면 좋지만, deadlock을 막을 수 없는 경우가 존재한다. ⇒ OS가 deadlock을 막아줘야 한다.A set of processes is deadlocked when each process in the set is block
resource\[m] : 원래 이 시스템 안에 자원이 각각 몇개씩 있는지?avaiavble\[m] : 그 자원들 중, 할당 후 남아있는 자원?claim\[n]\[m] : 모든 프로세스가, 나는 이 타입의 자원을 몇개까지(최대 동시 요청 가능) 요청할거다 라는 걸 미리
Memory Management Subdividing memory to accommodate multiple processes Memory needs to be allocated efficiently to pack as many processes into memory
Paging System 은 프로그램을 Page 크기로 나누는 것이다. 주소를 붙일 때 주소는 논리주소가 되는데, PageRelocation → Page Table\*\* 을 사용한다. 가상주소 적는 방법Physical Address 로 변환하는 방법 계산하는 과정M
Real memoryMain memoryVirtual memoryMain memory + Memory on diskAllows for effective multiprogramming and relieves the user of tight constraints of ma
Main MemoryPhysical 한 메모리 자체를 말한다.Main Memory + Memory on disk전체 프로그램을 모두 메모리에 넣지 않고, 프로그램의 일부만 메모리에 넣고 실행을 시키는 방식.전체 프로그램 중 일부는 진짜 Physical 한 메모리에 들어
Relocation 을 위해서 Page Table 을 이용한다. Page Table 에는 두가지 종류가 있다.hierarchical page tableinverted page tablehierarchical page table 을 사용할 때는 Page Table 자체가
Virtual Memory System 구현 방법 Paging Segmentation Combined Combined Paging and Segmentation Process 를 Segment 단위로 나눈다. PCB CODE DATA ST
Resident Set Size Resident Set Size는 프로세스마다 어떻게 할당할지 replacement 하기 전에 정해줘야 한다. Fixed-allocation 프로세스에 할당된 페이지 프레임 수에 변화 X Variable-allocation 프로세스에
9장에서의 CPU 는 1개만 존재한다.Replacement 의 성능 → Page Fault 수가 증가하면 성능이 낮아진다.Response timeThroughputProcessor efficiency Fairness위의 네가지가 스케쥴링의 목표이지만, 애매하고, 동시
우선순위의 기준이 무엇이냐에 따라 좋은 스케쥴러가 달라진다. 우선순위: Queue 에 들어온 순서 공정성 ↑ 예측가능성 ↑ : 내가 언제 실행을 끝낼 수 있는지 예측할 수 있음 SPN (Shortest Process Next), SRT (Shortest Remain
Multiprocessor System은 세가지로 구분할 수 있다.각각의 CPU 가 자기 메모리, 자기 I/O 채널을 가지고 있다. consists of a collection of relatively autonomous systems, each processor h
Gang Scheduling application 이 여러개의 Thread 로 구성되어 있으며 일정하게 자주동기화하면, Switching 하지 않고 기다리는 게 나을 수도 있다. independent X, Medium 정도 O Ready Queue → 스레드 단위가
→ Round-Robin 방식 사용 ↳ 언제나 우선순위 기반의 Preemptive Scheduling 기법이다 🌟내가 어떤 task 를 실행하고 있다가도 이거보다 조금이라도 우선순위가 높은 프로세스가 갑자기 시스템에 새로 들어오면 하던 거 중단하고 새로 들어온 프로
Operating System Design Objectives I/O I/O cannot keep up with processor and main memory speed ==> Efficiency is an important issue I/O 에서는 속도가 매우 중요
큐에 먼저 들어온 request 부터 처리한다.실행시간이 짧은 request 부터 처리한다.굉장히 공정한 방법이다. Starvation 발생 가능성이 거의 없다. (완벽하게 없진 않다. 특정 트랙에 계속해서 request 가 쏟아지면 진행을 못할 수도 있기 때문이다.)