밤이라구요

블로그관리

글쓰기

Yesterday

Today

Total

블로그 이미지

밤이라구요

이것저것

블로그 이미지
밤이라구요
2022. 2. 19. 15:35
728x90

System Programming 개요

 

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 입장에서는 보다 안전하고 정해진 체계로 효율적으로 컴퓨터 시스템을 관리할 수 있다.

Standard Library의 사용은 대표적인 예이다.

 

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