일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 백준
- 블록체인
- kubernetes
- react
- 타입스크립트
- 이슈
- es6
- docker
- 컴퓨터공학
- 가상화
- k8s
- 프론트엔드
- 솔리디티
- 알고리즘
- 쿠버네티스
- BFS
- next.js
- 클라우드
- HTML
- CSS
- 리액트
- AWS
- TypeScript
- 자바스크립트
- 이더리움
- 웹
- VUE
- 백엔드
- JavaScript
- 파이썬
- Today
- Total
즐겁게, 코드
운영체제 - 02. 운영체제 개요 본문
이 글은 한국기술대학교 컴퓨터공학부의 OS 공개강의를 시청한 후 정리한 내용입니다.
목차
- 운영체제의 역할
- 운영체제의 구분
- 운영체제의 구조
- 운영체제의 기능
1. 운영체제의 역할
1. 운영체제는 유저가 하드웨어를 다룰 수 있는 인터페이스를 제공한다.
- GUI
- CUI
- EUCI (MP3 등 특수한 목적의 운영체제)
2. 운영체제는 하드웨어와 소프트웨어를 효율적으로 관리한다.
3. 운영체제는 *프로세스와 쓰레드를 관리한다. (* 프로세스 = 하나의 작업)
4. 운영체제는 시스템을 보호한다.
2. 운영체제의 구분
1. 동시 사용여부에 따라 (여러명이 "동시에" 사용할 수 있는가?)
- Single User System (단일 사용자 운영체제)
- Multi User System (다중 사용자 운영체제)
2. 동시 실행 프로세스에 따라
- 단일 작업 시스템 : 시스템 내에서 한번에 하나의 작업만을 수행할 수 있음. => MS-DOS
- 다중 작업 시스템 : 동시에 여러 작업(프로세스)를 수행할 수 있음. => UNIX / Windows / Linux
3. 작업 수행 방식에 따라
- 일괄처리 시스템
- 시분할 시스템
- 병렬, 분산처리 시스템
- 실시간 시스템
2. 1. 일괄처리 시스템 (1950' ~ 1960')
- 모든 시스템을 중앙에서 관리 및 운영함.
- 사용자가 요청한 작업을 일정 시간동안 모았다가 한번에 처리함.
- 시스템 지향적임. (유저에게는 불편함)
장점 - 많은 사용자가 시스템 자원을 공유할 수 있고, 처리효율이 향상됨.
단점 - 생산성 저하 (작업이 모이길 기다려야 하므로), 긴 응답시간 (Input - Output에 약 6시간)
2. 2. 시분할 시스템 (1960' ~ 1970')
- 사용자마다 자원 사용 주기를 분할하고, 주기적으로 프로세스를 처리함.
- 사용자 지향적 시스템 (대화형 시스템, 단말기(터미널)을 활용함.)
장점 - 응답시간의 혁신적 단축 (6시간 -> 5초), 생산성 향상
단점 - 터미널과 전산소간 통신비용이 발생하며, 동시 사용자가 증가하면 부하가 걸려 처리가 늦어진다.
2. 3. 병렬처리 시스템
- 단일 시스템 내에서 둘 이상의 프로세서를 사용함. = 동시에 둘 이상의 프로세스를 실행할 수 있음.
- 메모리, 기억장치 등의 자원 공유 (Tightly-coupled system)
장점 - 성능, 신뢰성 향상
단점 - 프로세서간 관계 및 역할 관리 필요
2. 4. 분산처리 시스템
- 네트워크를 기반으로 구축된 병렬처리 시스템 (Loosely-coupled system)
- 분산운영체제를 활용해 cluster-system, client-server system 등의 구축이 가능함. (이해가 안되면 클라우드를 생각하면 될듯)
장점 : 자원 공유를 통한 높은 성능, 고신뢰성, 높은 확장성
단점 : 구축 및 관리가 어려움
2. 5. 실시간 시스템
- 작업 처리에 제한시간을 갖는 시스템. (= 즉, 특정 작업을 특정 시간 내에 끝내야만 하는 시스템)
- 작업의 종류
- hard real-time task : 시간 제약을 반드시 지켜야 하는 태스크 (무기, 위험시설 제어)
- soft real-time task : 시간 제약에 비교적 느슨한 태스크 (동영상 재생 등)
3. 운영체제의 구조
커널(Kernel) = 아주 중요함
- OS의 핵심이 되는 부분 (주 메모리에 상주한다.)
- 가장 빈번하게 사용되는 기능들을 담당한다. (시스템, 프로세서 및 메모리 관리 등)
유틸리티
- 비상주 프로그램
- UI 등 서비스를 제공하기 위한 프로그램
3. 1. 단일 구조
- 한 커널에서 모든 시스템을 제어하고 있는 운영체제 구조
장점 : 커널 내에서 모듈간 직접 통신할 수 있다. (= 빠르다)
단점 : 커널이 지나치게 비대해지며, 유지보수 및 개선이 어렵다.
3. 2. 계층 구조
- 단일 구조에서는 커널에 모든 모듈을 때려박았다면, 계층 구조에서는 계층을 나누고 각자 다른 업무를 담당하도록 구성한다.
- 현대 운영체제는 대부분 계층 구조를 채택하였음.
장점 : 기능별 모듈화가 가능하며, 설계 및 확장이 단순하다.
단점 : 단일 구조에 비해 성능이 낮으며, 원하는 기능을 위해 여러 계층을 거쳐야 한다.
4. 운영체제의 기능
- 프로세스 관리
- 프로세서 관리
- 메모리 관리
- 파일 관리
- 입출력 관리
- 보조기억장치, 주변장치 관리
4. 1. 프로세스
- 커널에 등록되는 실행 단위 (= 실행중인 프로그램)
- 사용자 요청 / 프로그램의 수행 주체
OS의 프로세스 관리 기능
- 프로세스 생성 / 삭제, 상태 관리
- CPU, 메모리 자원 할당
- 프로세스간 통신 및 동기화
- 교착 상태(데드락) 해결
OS의 프로세서(= 넓게 보면 CPU) 관리 기능
- 중앙처리장치 제어
- 프로세스 스케줄링 (실행할 프로세스 순서 제어)
- 프로세서 할당 관리 (프로세스를 담당할 프로세서 할당)
'🖥 컴퓨터공학 > 운영체제' 카테고리의 다른 글
운영체제 - 05. 프로세스 스케줄링 上 (0) | 2021.04.23 |
---|---|
운영체제 - 04. 스레드 관리 (0) | 2021.04.17 |
운영체제 - 03. 프로세스 관리 (2) | 2021.04.12 |
운영체제 - 01. 컴퓨터 시스템의 이해 (0) | 2021.04.06 |