2022. 2. 19. 15:35
728x90
1. Operating System :: Summary
컴퓨터에서 program을 실행하게 되면, CPU가 memory에 올려진 program의 CPU instructions을 Fetch&Decode를 수행하여 instruction을 수행하게 된다. 저장된 명령어를 순서대로 가져오고 해석하고 실행하는 과정을 반복해 program이 동작하게 된다.
OS는 위 과정을 관리하는 관리자 역할을 맡는다. 예를 들어, CPU가 program을 쉽게 run하도록 instruction 배치를 조정하거나, memory share을 통한 memory 절약, device간 interaction 관리 등을 담당한다.
Task Manager : CPU |
task manipulation, schedule, IPC, signal, context switch |
Virtual Memory : Main Memory |
page, segment, address translation, memory allocation |
File System : Storage |
file, directory, disk scheduling, FAT |
Device driver : Device |
IO port mangement, interrupt, DMA |
Network Protocol : Network |
connection, routing, fragmentation |
2. Runtime System : Commands & Shell
shell에 지정된 commands를 입력하면 shell이 해당 내용을 실행한다. User와 OS가 접근할 수 있는 공간을 분리하기 위해 이 system을 사용하게 되었다. 이로 인해, user 입장에서는 컴퓨터의 동작을 고려하지 않고 program을 구현할 수 있고, OS 입장에서는 보다 안전하고 정해진 체계로 효율적으로 컴퓨터 시스템을 관리할 수 있다.
3. OS에서 고려하는 것들
Virtualization |
program마다 독점적인 CPU, Disk, Memory 영역을 줌으로 program 입장에서는 독점적인 자원 제공으로 풍부한 자원을 사용할 수 있다는 장점이, OS 입장에서는 program들의 관리 및 분리, 자원의 관리가 용이해진다는 장점이 있다. |
Concurrency |
OS는 program의 동시실행 등을 관리할 수 있어야 한다. 대표적인 문제점으로 multi-threaded process의 shared variable에 대한 race condition 문제가 있다. segment 등으로 관리할 수 있다. |
Persistence |
file과 directory 영역으로 storage를 관리하고 있으며, DRAM처럼 volatile storage 들의 data 관리도 가능해야 한다. |
'대학교 > 운영체제' 카테고리의 다른 글
[CS/운영체제] 2. Program to Process (0) | 2022.02.19 |
---|