운영체제란?
하드웨어를 관리하는 프로그램이다.
컴퓨터 하드웨어어와 컴퓨터 사이의 중개인 역할을 하는 프로그램이다.
운영체제의 목적
- User program을 실행하고 User Problem을 쉽게 해결하게 해 준다.
- 컴퓨터 사용을 더욱 쉽게 만들어준다.
- 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공한다.
- 컴퓨터의 하드웨어를 효율적인 방식으로 사용할 수 있게 한다.
Computer System
- 4가지 구성요소
- User, Computer Hardware, System/application programs, Operating System

- Os만이 하드웨어와 직접 소통할 수 있다.
- OS는 하드웨어와 시스템, 애플리캐이션 사이를 중개한다.
OS View Points
User View
- Home PC User
- 주요 목표는 쉬운 사용이다.
- 리소스에 대한 활용 부분은 사용자가 생각할 필요가 없다.
- Mainframe/minicomputer -> SuperComputer
- 자원의 활용을 최대화로 하는 것이 목표
- 놀고 있는 자원 없이 최대한 활용하는 것이 이득
- Workstation
- 사용자당 전용 리소스이지만 공유 리소스에 연결됨
System View
- Resource allocator
- Resource : CPU, Memory, Stoarage, I/O Devices 등등..
- 여러 개의 Program이 가동중일 때 각자가 리소스를 요구하게 된다.
그때 OS는 allocatior역할을 한다. - 충돌하는 리소스 요청을 관리한다.
- Control Program
- 에러를 방지
- 컴퓨터의 부적절한 사용을 막는다.
OS 정의
- Os는 느슨하게 정의된다.
- 분명하게 정의 내리기 어렵다.
- Diverse H/W, various purpose
- Os = Kernel + System Programs
- Kernol : OS의 기본 알고리즘들을 구현해둔 로직
Computer System Organization

- CPU : 연산을 수행한다.
- I/O devices [입출력장치] : 디스크, 모니터, 프린터
- Device controller에 의해 관리된다.
- Device controller : Disk controller , USB controller, Graphics adaptor
- Memory : 프로그램들과 데이터
- System bus : channel을 연결
- CPU와 Devices는 병렬로 실행되고 있다.
- System bus를 통해서 Memory와 연결된다.
- Memory controller가 접근을 동기화한다.
Computer Operations
Start up
- Bootstrap program : 컴퓨터가 켜지면 가장 먼저 실행되는 프로그램.
OS의 구동을 도와줌.- ROM, EEPROM [Electrically Eraseble Programmable ROM]에 저장됨.
- CPU Register, Device controllers, Memory를 초기화한다.
- OS kernel 로드, kernel 시작
- System daemons
- 커널 백그라운드에서 계속 돌아간다.
- init 프로세스 바로 아래에 위치함.
- init이 제일 첫 번째 프로세스이고, init이 다른 daemon들을 시작시킴
Interrupt
- CPU를 멈추고 interrupt handler를 실행하고 보내는 event
- H/W interrupts
- timer, keyboard, mouse, DMA -> System bus를 통해서 전달된다.
- S/W interrupts = system call
- interrupt handling : CPU의 주요 기능 중 하나.
- 반드시 빨라야 한다.
- Interrupt handler : function = 함수 하나
- Interrupt vector : interrupt handler 주소들의 배열
- interrupt 된 instruction의 현재 주소와, register 상태를 저장해야 한다.
Interrupt Timeline

CPU
- User process executing
- I/O interrupt processing
I/O device = Disk drive
- I/O request : Disk가 idle -> transferring -> idle.
Disk에서 Memory로 데이터를 가져온 것 - Transfer done : I/O interrupt 처리. Memory에서 CPU로 데이터 가져오기.
- 위에 작업이 끝나면 CPU는 User process executing, I/O는 idle 상태
- I/O request -> Transfer -> idle -> 반복
I/o가 작업 중이라도, CPU는 다른 작업을 할 수 있다.
I/O 작업이 완료되면, 그때 인터럽트가 발생된다.
Storage Structure
- 프로그램들은 실행되기 전에 memory에 로드되어야 한다.
- Memory : RAM (Random Access Memory)
- load/store instruction를 사용해서 로드됨.
- 폰 노이만 아키텍처
- 인스트럭션과 데이터가 같은 메모리에 저장된다.
메모리는 CPU와 single channel로 연결된다. - 메모리는 cache의 사용으로 메모리 접근을 향상할 수 있다.
- CPU는 multiple functional units을 가진다.
- 인스트럭션과 데이터가 같은 메모리에 저장된다.
- Secondary storage [보조 기억 장치]
- 보통 HDD [하드디스크]를 의미한다.
- 메인 메모리는 휘발성이고, 용량이 적기 때문에 보조 기억장치는 꼭 필요하다.
Storage device hierarchy

- 위로 갈수록 빠르고, 비싸다.
- 아래로 갈수록 느리고, 싸다.
Non-volatile storage
- SSD(Solid-State-Disks)
- HDD보다는 빠르고, 비휘발성이다.
- Flash memory
- NVRAM : DRAM with battery backup power
I/O structure
Device controller
- CPU와 Device controller는 system bus를 통해서 연결되어 있다.
- OS는 device controller(H/W)와 어떻게 상호작용해야 하는지 알고 있는 device driver(software)를 가지고 있다.
I/O operations
- CPU(OS)가 Device controller의 레지스터에 명령을 넣는다.
- Device driver가 Device controller의 레지스터 내용을 로드한다.
- Device controller가 레지스터 내용을 확인한다.
- Device controller가 데이터를 송수신한다.
- Device controller가 데이터 송수신을 마치면, 인터럽트를 발생시킨다.
- Devicde dirver는 OS에게 control를 돌려준다.
DMA(Direct Memory Access)
- CPU는 critical path로부터 방출된다.
- critical path : 가장 오랜 시간이 걸리는 경로
Computer System Architecture
Single-processor Systems
- 하나의 general-purpose processor + 다수의 special-purpose processors
- main CPU에 의해 관리됨.
Multiprocessor Systems
- 2개 이상의 프로세서(CPU)로 구성되는 하나의 시스템
- 하나의 프로세서로는 성능을 향상하기에 한계가 존재한다.
- 장점
- Throughput [단위시간 동안 처리되는 일의 양] 증가
- 프로세서 개수를 늘려서, 더 적은 시간에 많은 작업을 할 수 있다.
- 하지만 N개의 CPU가 N배의 성능 향상을 의미하지는 않는다. [암달의 법칙]
- 계속 증가하다가 수렴하게 됨.
- Economy of scale(from sharing)
- Single-processor system을 여러 개 두는 것보다 비용이 더 적다.
- 전원과 저장소 등을 여러 프로세서가 공유하기 때문이다.
- Single-processor system을 여러 개 두는 것보다 비용이 더 적다.
- Increased reliability
- 하나의 프로세서가 고장 나더라도 시스템이 멈추는 일은 없고, 속도만 느려진다
- Graceful degradation
- 더 많은 하드웨어 컴포넌트의 문제가 생길수록 동작 효율이나 속도가 점진적으로 감소한다.
- Fault tolerance
- 여러 개의 하드웨어 컴포넌트 중 일부가 문제가 생기더라도,
전체 시스템의 불능 상태가 일어나지 않고 서비스를 제공한다. - Fault tolerance 시스템은 Graceful degradation 특징을 가진다.
- 여러 개의 하드웨어 컴포넌트 중 일부가 문제가 생기더라도,
- Throughput [단위시간 동안 처리되는 일의 양] 증가
MultiProcessor System
Asymmetric multi processing
- 하나의 프로세서가 다른 프로세서와 주종 관계
- Master 프로세스가 다른 프로세스(slave)의 전체 시스템을 control 한다.
- 각 Slave 프로세스는 Master 프로세스에게 작업을 할당받아 명령을 수행한다.
Symmetric multiprocessing(SMP)

- 모든 프로세서들은 동등하다.
- 각 프로세서는 OS의 모든 작업을 같이 수행한다.
- 모든 프로세서가 같은 physical memory를 공유한다.
- UMA(Unifrom Memory Access) : 어느 프로세서에서 어느 메모리에 접근하든 동일한 시간이 걸림.
- NUMA(Non-UMA): 메모리의 일부분이 다른 부분보다 접근이 더 오래 걸릴 수 있다.
Multicore System

- 하나의 프로세서 내에 여러 개의 코어가 들어있는 것
- 하나의 칩 내에서 커뮤니케이션(정보 교환)이 훨씬 효율적이다.
- CPU가 2개인 커뮤니케이션보다 CPU 1개 내의 두 개의 코어끼리의 커뮤니케이션이 더 효율적이다.
- 비용이 저렴하다.
- 전력소비가 더 적다.
- 하나의 칩 내에서 커뮤니케이션(정보 교환)이 훨씬 효율적이다.
'Computer Science > OS' 카테고리의 다른 글
| 운영체제의 구조 (3) | 2023.01.05 |
|---|