일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- OS
- 오퍼레이팅시스템
- 구현
- 코테
- 백준
- vector
- 컴공과
- c++
- 문제풀이
- 컴퓨터공학과
- 스택
- Stack
- 정석
- 북리뷰
- 자료구조
- Operating System
- 코딩
- DP
- 정석학술정보관
- 오에스
- cs
- 개발
- Computer science
- bfs
- 너비우선탐색
- 브루트포스
- 컴공
- 그래프
- 알고리즘
- coding
- Today
- Total
목록컴공과 (14)
Little Jay

Terminologies Burst라는 용어가 있다. 직역을 하면 파열 정도로 해석이 되는데 OS에서의 의미는 시간이라는 뜻이다. 즉 Operation을 수행하는 시간이라는 것을 발한다. OS에서 다루는 Burst는 두 가지의 종류가 있다. 하나는 CPU Burst이다. 이는 CPU가 실제 Operation을 수행하는 시간을 의미한다. 다른 하나는 I/O Burst인데 이는 CPU가 I/O를 위해 대기하는 시간을 의미한다. Process는 CPU Burst와 I/O Burst를 필연적으로 반복하면서 수행한다. 이러한 구조를 CPU - I/O Burst Cycle이라고 한다. 예를 들어 명령어를 수행하는 것은 CPU Burst인데 read, write 등의 Operation이 발생하면 필연적으로 I/O W..

Round Robin Round Robin은 스케줄링 알고리즘에서 가장 중요하다고 해도 과언이 아닌 알고리즘이다. Round Robin은 기본적으로 FIFO와 동일하다. FIFO가 하나의 Process를 전부 끝내고 나서 다음 Process로 넘어가는 것과 달리 Round Robin은 일정한 시간 간격을 두어 Process를 Time-Out 시켜버린다. 일정한 시간 간격을 Quantum이라고 한다. Process가 Quantum을 다 사용하면 해당 Process는 Time-Out되어 다시 Ready Queue로 보내버린다. 따라서 FIFO에서는 Long한 Process들이 우선적으로 선택되는 Convoy Effect가 자주 발견이 되었는데 이 Side Effect를 방지할 수 있는 것이 Round Rob..

Types of Process Scheduling Process를 스케줄링하는 것은 크게 세 가지로 분류된다. 먼저 Long-Term Scheduling이 있다. 이를 Job Scheduler라고도 하는데 이는 단순하게 시스템에 Program을 올릴지 말지를 결정하는 Scheduling이다. 다음으로는 Medium-Term Scheduling이 있다. 이를 Swapper라고도 부르는데 우리는 이전에 우리가 배운 Swapping 기법을 수행하는 Scheduler이다. 또한 Short-Term Scheduling이 있다. 이것이 우리가 초점을 두고 있는 CPU Scheduler이다. Processor가 어떤 Process를 수행할지 결정하는 Scheduling이다. 마지막으로 I/O Scheduling이 있..

Process Creation Direct하게 Process를 생성하는 방법은 다음과 같다. 먼저 a.out과 PCB를 위한 메모리 공간을 할댕해준다. 이때 a.out 파일의 code와 data를 메모리에 오리고 Call Stack을 생성해준다. 그 다음 PCB를 Initialize해준다. 이제 Process가 생성되었으니 이를 ready list에 올리고 execute하면 된다. Process를 생성하는 데에는 다양한 이유가 있다. 먼저 New Batch Job, 즉 load&run하는 경우에 OS가 JCL과 같은 일련의 batch job control stream을 제공해준다. 또한 Interactive Logon에서 새로운 Process가 생성이 되는데 예를 들어 User가 새로운 Terminal에..

Mode Switch Mode Switch는 단순히 Kernel Mode와 User Mode에 대한 전환이다. 따라서 Mode만 바뀌는 것이다. Mode만 바뀌고 있는 것이기 때문에 User에서 Kernel로 넘어갔다고 하더라도 Process의 전환이 일어난 것은 아니다. 예를 들어 Process A를 수행하고 있는데 System Timer Interrupt가 발생했다고 하자. 이 Interrupt는 필연적으로 User Level에서 Kernel Level로 전위가 일어나자민 여전히 Process A는 실행중이다. Process를 수행하는 환경만 바뀐 것이지 Process 자체가 바뀐 것은 아니다. 따라서 Mode Switch의 비용은 Stack에 save/load 하는 등의 Overhead밖에 들지 않..

Intro 앞서서 Process Control Information에 Process의 State가 들어간다고 언급했다. 이 State는 Process가 어떤 상태에 있는지 알려주는 것이다. 예를 들어 Processor가 1개인데 처리해야 하는 Process가 다수라면, Process는 Uni-Programming을 하고 있다면 하나의 Process만 처리할 수 있기에 나머지 Process는 대기하거나 Block되어야 한다. 이 State를 정의해주는 것이 Process State Model이다. 우리는 가장 간단한 Two State Process Model부터 Five, Seven까지 순차적으로 알아볼 것이다. Two State Process Model 가장 단순한 Processing Model이다. 이..

Process Description Process는 세 가지의 Context로 이해할 수 있다. 먼저 User Level Context가 있다. 이는 User Program의 기본적인 요소들(text, data 등)을 담고 있다. 또한 User Level에서는 Process가 실행될 때 Flow 및 복귀주소를 파악하기 위해 Stack 또한 돌아가게 된다. 따라서 User Level Context에서는 Program이 돌아가는 데에 필요한 Data, Memory의 Context라고 이해하면 될 것이다. User Data, User Code, User Stack 등이 이에 해당된다. 또한 우리는 이제 System Level Context에서 Process를 어떻게 정의해야 할 것인지 봐야한다. System ..
Main Objective of OS Operating System의 주요 목적을 이야기 하라고 하면 세 가지의 측면을 이야기 해야한다. Convenience Efficiency Ability to Evolve OS는 사용자들로 하여금 컴퓨터를 더 쉽게 사용할 수 있고, OS는 컴퓨터 시스템의 자원(Resources)를 효과적으로 관리하며, 유연한 설계로 변화가 있어도 끊임없이 서비스를 제공할 수 있어야한다. Role of OS OS의 목적을 살펴보았으니 이제 실제 OS가 어떤 일을 하는지 알아보자. OS의 역할은 크게 두 가지로 나뉜다. 첫 번째는 중재자(Mediator)로서의 역할이다. 이는 다양한 Interface를 제공하는 동시에 프로그램을 실행, 개발, I/O 장치 접근, 파일 접근 제어, 시스..

I/O Controller I/O Device와 Processor가 통신하기 위해서는 특정한 Interface가 필요하다. 이 Interface는 I/O Controller이며, CPU와 I/O Controller는 System Bus를 통해서 Data를 주고 받는다. System Bus라고 하면 Data전송을 위한 HW Line이며 이는 중요한 시스템 자원이다. 이 System Bus는 최소 3개로 이루어져 있다. Address Bus : Src, Dst를 지정해주는 Bus이다 Data Bus : 실제 Data를 전송해주는 Bus Control Bus : 어떤 Operation을 수행해야하는지 알려주는 Bus이다 따라서 I/O Controller들은 이 Bus를 통해 CPU 대신해서 I/O 들을 Con..

Interrupt Mechanism Interrupt는 Processor Utilization은 높이는 기법이다. Interrupt 자체는 시스템 프로그래밍 파트에서도 설명을 했었는데 이제는 이 Interrupt가 어떻게 동작하는지 그 원리와 내부 구조, 이유에 대해 OS의 관점에서 정리하겠다. Interrupt를 사용하는 이유는 대부분의 I/O Device가 Processor보다 느리기 때문이다. 만약 Processor가 I/O Device와 바로 상호작용하기 위해서는 Processor는 Device의 작업이 끝날 때까지 기다려야 한다. 이는 Processor라는 자원을 놀리고 있는 것이고 이는 Resource에 대한 자원 낭비이다. 예를 들어서 Read Operation이 일어난다면 Processor..