일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- linux
- 킥스타트
- 프로그래머스
- 백준
- 순열
- 동적 프로그래밍
- 코딩 테스트
- 브루트포스
- dp
- kick start
- 코딩테스트
- google coding competition
- 네트워크
- 리눅스
- 그래프
- CSS
- 알고리즘
- PYTHON
- BFS
- nlp
- DFS
- 프로그래밍
- OS
- AI
- 동적프로그래밍
- 파이썬
- 코딩
- 운영체제
- 구글 킥스타트
- 딥러닝
- Today
- Total
오뚝이개발자
[OS]CH2. 운영체제 개요 본문
-
운영체제의 역할
-
User Interface(편리성)
-
Resource Management(효율성)
-
Process and Thread management
-
System management
-
-
System call interface=>사용자가 kernel에 필요한 기능 요청하는 통로(커널에 직접 접근X)
-
운영체제의 구분
-
동시 사용자 수에 따라
-
single-user system
-
multi-user system
-
-
동시 실행 프로세스 수에 따라
-
single-tasking system
-
multi-tasking system(=multi-programming system)
-
-
작업 수행 방식에 따라
-
Batch system
-
Time-sharing system
-
Distributed processing system
-
Real-time system
-
-
-
동시 사용자 수에 따른 구분
-
Single-user system
-
한 명의 사용자만 시스템 사용(모든 시스템 자원 독점)
-
자원관리, 시스템 보호 방식 간단
-
Ex) 개인용 장비(PC, mobile) : windows, android, MS-DOS
-
-
Multi-user system
-
동시에 여러 사용자들이 사용
-
자원에 대한 소유 권한 관리 필요
-
기능과 구조가 복잡
-
Ex) 서버, 클러스터에 사용 : Unix, Linux
-
-
-
동시에 실행되는 프로세스 수에 따른 구분
-
Single-tasking system
-
하나의 작업(프로세스)만 수행
-
Ex) MS-DOS
-
-
Multi-tasking system
-
동시에 여러 작업 수행
-
Ex) Windows, Linux
-
-
-
작업 수행 방식에 따른 구분
-
발전 순서
-
순차처리->일괄처리(Batch)->시분할(time-sharing)->분산처리(distributed)->실시간(real-time)
-
OS라는 개념이 없을 때 작업을 '순차처리'했었다.(각 작업에 대한 준비시간이 필요했음, 일종의 setting)
-
-
Batch system
-
사용자의 요청작업을 일정시간 모아두었다 처리(준비시간 절약)
-
장점
-
system-oriented(효율 up)
-
처리효율(Throughput) 증가
-
-
단점
-
생산성(productivity) 감소(같은 유형의 작업이 모이기를 기다려야 하므로)
-
응답시간(response time) 증가
-
-
-
-
Time-sharing system
-
여러 사용자가 자원을 동시에 사용
-
장점
-
응답시간 감소
-
생산성 증가(프로세서 유휴 시간이 감소하므로)
-
-
-
Personal Computing
-
"개인"이 시스템 전체 독점
-
-
Parallel Processing system
-
단일 시스템 내에서 둘 이상의 프로세서 사용(동시에 둘 이상의 프로세스 지원)
-
특징
-
메모리 등의 자원 공유(Tightly-coupled system)
-
-
사용목적
-
성능향상
-
신뢰성 향상(하나가 고장나더라도 정상 동작 가능)
-
-
-
Distibuted Processing system(분산처리 시스템)
-
"네트워크"를 기반으로 구축된 병렬처리 시스템(Loosely-coupled system)
-
특징
-
물리적인 통신망 이용한 상호연결
-
각각 OS 탑재한 다수의 범용 시스템으로 구성(각 node는 각자의 OS를 가짐)
-
사용자는 분산운영체제를 통해 하나의 프로그램, 자원처럼 사용 가능
-
Ex) Cluster system, P2P, client-server system
-
-
장점
-
자원공유를 통한 높은 성능
-
고신뢰성
-
-
단점
-
구축, 관리 어려움
-
-
-
Real-time system
-
작업처리에 "제한시간"(deadline)을 갖는 system
-
즉, 제한시간 내에 서비스를 제공하는 것이 자원 활용 효율보다 중요
-
구분
-
Hard real time task
-
시간 제약 못지키면 치명적
-
Ex) 무기제어, 발전소 제어
-
-
Soft real time task
-
Ex) 동영상 재생
-
-
-
-
커널이란?
-
OS의 핵심부분으로 메모리에 상주하는 프로그램
-
역할
-
빈번한게 사용되는 기능 담당
-
시스템 관리(process, memory)
-
-
-
단일 구조
-
커널에 모든 기능 추가
-
장점
-
커널 내 모듈 간 직접 통신(효율적)
-
-
단점
-
커널의 거대화
-
오류, 버그 多
-
한 모듈의 문제가 전체 시스템에 영향(동일 메모리 상에 있으므로)
-
-
-
계층 구조
-
장점
-
모듈화->계층 간 검증 및 수정 용이
-
-
단점
-
단일구조 대비 성능 저하(여러 계층 거쳐야 하므로)
-
-
-
마이크로 커널 구조
-
커널에 필수 기능만 포함시켜 크기를 최소화
-
기타 기능은 사용자 영역에서 수행토록 함
-
'CS 기초 > OS' 카테고리의 다른 글
[OS]CH6. 프로세스 동기화(Synchronization) & 상호배제(Mutual Exclusion) (0) | 2020.10.16 |
---|---|
[OS]CH5. 프로세스 스케쥴링 (0) | 2020.10.12 |
[OS]CH4. 스레드(Thread) 관리 (0) | 2020.05.27 |
[OS]CH3. 프로세스 관리 (0) | 2020.05.27 |
[OS]CH1. 컴퓨터 시스템 개요 (0) | 2020.04.27 |