운영체제 개요
2021. 10. 13. 23:23
운영체제 개요
[TOC]
운영체제란?
- 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층
- 하드웨어와 소프트웨어의 중개자
운영 체제의 목적
컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공
- 여러 프로그램을 실행할 수 있는 환경을 제공
컴퓨터 시스템의 자원을 효율적으로 관리
- 자원이란?
- CPU, 메모리, IO 장치 등의 효율적 관리
- 주어진 자원으로 최대한의 성능 -> 효율성
- CPU가 효율적으로 프로그램을 관리(할당)
- 특정 사용자/프로그램의 지나친 불이익이 발생하지 않도록 -> 형평성
- 메모리 공간 분배에 차별성이 없어야함
- 사용자 및 운영체제 자신의 보호
컴퓨터 구조
- 컴퓨터 내부
- CPU, 메모리
- 입출력(I/O) 디바이스
- 모니터, 키보드 등등
- 하드디스크(HDD)
운영체제의 기능
- 부팅 시 메모리에 운영체제가 올라감
- 운영체제는 컴퓨터가 꺼지기 전까지 돌아간다.
- 메모리 = CPU의 작업 공간
- CPU는 외부장치(I/O)에 직접 접근하지 못함
- I/O 컨트롤러에게 명령을 내림
- 어떤 프로그램에게 CPU 사용권을 줄 것인가? => CPU 스케쥴링
- 한정된 메모리 공간을 어떻게 사용할 것인가 => 메모리 관리
- 디스크에 들어온 요청을 어떤 순서로 처리할 것인가 => 디스크 스케쥴링
- 디스크는 CPU에 비해 느린 장치다
- 효율적인 방법이 무엇일까
- 빠른 CPU와 느린 I/O 장치간 속도차이 극복 => 인터럽트, 캐싱
프로세스의 상태
- 프로세스 = 실행중인 프로그램
- CPU : 기계어 실행
- 나머지 프로그램들은 CPU 큐에서 대기함
- I/O : 입출력 디바이스 또한 입출력 큐 에서 처리
- CPU만 사용하거나, IO까지 함께 사용하는 프로세스들이 있다.
CPU 스케쥴링
Process | 금번 CPU 사용 시간 |
---|---|
P1 | 24 |
P2 | 3 |
P3 | 2 |
- 프로세스 도착 순서 : P1, P2, P3
- FCFS (First-Come, First-Serverd)
- 프로세스가 도착 한 순서대로 처리함 (P1 -> P2 -> P3)
- Waiting Time (P1 = 0, P2 = 24, P3 = 27)
- average time = 17 (0 + 24 + 27 / 3)
- SJF (Shortest - Job - First)
- 금번 CPU 사용 시간이 가장 짧은 프로세스를 제일 먼저 스케쥴
- minimum average waiting time을 보장함
- P3 -> P2 -> P1 순서대로 처리
- 문제점
- Starvation (기아 현상) 발생 가능
- 사용 시간이 긴 프로세스는 뒤로 계속 밀려남
- Round Robin
- 현재 CPU 스케쥴링에서 가장 많이 사용되는 방법
- 각 프로세스는 동일 크기의 CPU 할당 시간을 가짐
- 할당 시간이 끝나면 인터럽트가 발생하여 프로세스는 CPU를 빼앗기고 큐의 제일 뒤에 줄을 섬
메모리 관리
- 프로그램 실행 후 물리적 메모리에 올리가기 전에 가상메모리에서 프로세스 정리
- 가상메모리에 있는 프로세스 중 필요한 부분만 실제 메모리에 올림
- 공간이 부족하여 스왑이 일어나면 디스크의 스왑 영역에 보관됨 (페이지 단위)
- 스왑이 일어 날때 어떤 페이지를 메모리에서 쫒아낼 것인가?
- 미래에 또 사용될 페이지는 남겨둬야 한다.
- 미래를 모르는 상태에서 미래를 예측하는 좋은 방법은?
- 과거를 보는 것
- LRU vs LFU
- LRU : 가장 오래 전에 참조 페이지 삭제 (사용된 기록이 가장 오래된 것)
- LFU : 참조 횟수가 가장 적은 페이지 삭제 (사용 횟수가 가장 적은 페이지)
- 미래에 또 사용될 페이지는 남겨둬야 한다.
디스크 스케줄링
- 디스크는 원판이 돌아가면서 헤드가 데이터를 찾는다.
- 헤드의 이동거리를 줄이는 방향으로 스케쥴링 해야한다.
- 디스크 접근 시간(Access Time)의 구성
- 탐색 시간(Seek Time)
- 제일 중요함, seek time을 최소화하는 것이 목표
- 헤드를 해당 트랙(실린더)으로 움직이는데 걸리는 시간
- 회전 지연(Rotational Latency)
- 헤드가 원하는 섹터에 도달하기까지 걸리는 시간
- 전송 시간(Transfer time)
- 실제 데이터 전송시간
- 탐색 시간(Seek Time)
- 스케쥴링 기법
- FCFS (First-Come, First-Serverd)
- SSTF(Shortest Seek Time First)
- seek time이 가장 적게 걸리는 기법
- 현재 위치에서 가장 가까운 위치가 어디인가 찾음
- starvation 문제 발생할 수 있음
- Scan
- 헤드가 디스크의 한쪽에서 다른 쪽 끝으로 이동하면서 모든 요청 처리함
저장장치 계층구조와 캐싱(caching)
- 저장 장치는 빠르면 비싸고 저장 용량이 작다
- primary = 메인 메모리 계층
- secondary = CPU가 직접 접근 못함
- 속도 차이 완충 방법은?
- caching을 통해 중간 경로에 데이터를 저장해 놓으면 제일 아래까지 다시 갈 필요가 없음
reference : http://www.kocw.net/home/cview.do?cid=4b9cd4c7178db077
'CS > 운영체제' 카테고리의 다른 글
Process & Thread (0) | 2021.10.19 |
---|---|
컴퓨터 시스템의 구조 (0) | 2021.10.14 |
[운영체제] 데드락(deadlock, 교착상태) (0) | 2021.05.19 |
[운영체제] 뮤텍스, 세마포어 (0) | 2021.05.12 |
[운영체제] Producer - Consumer (생성자 - 소비자) 문제 in jAVA (0) | 2021.04.27 |