참고 : [Course] Operating System (CPA310) - 운영체제 강의
[ 운영체제 2강. 운영체제의 역할 ]
OS의 역할 (개략)
- HW를 효율적으로 관리하여, 사용자&응용 프로그램에 서비스를 원활히 제공하는 역할
1. 운영 체제의 역할
- User Interface ( 편리성 )
- CUI ( Character UI )
- GUI ( Graphical UI )
- EUCI ( End-User Comfortable UI)
- Resource Management ( 효율성 )
- HW resource ( 프로세서, 메모리, 입출력 장치 등 )
- SW resource ( 파일, 애플리케이션 등 )
- Process & Thread Management
- 프로세스 : 실행 주체
- System Management ( 시스템 보호 )
2. 컴퓨터 시스템의 구성
OS는 2개의 층으로 구성
- 1) Kernel ( 핵심 )
- 2) System Call Interface
- 사용자가 직접적으로 Kernel에 접근하면 문제 발생할 수도!
- 이를 직접적으로 조작하지 않도록, 간접적으로 요청하는 통로라고 생각하면 됨!
3. 운영체제의 구분
세 가지로 구분 가능하다.
- 동시 사용자 수
- Single vs Multi user system
- Single :
- 한 명의 사용자만 시스템 사용 가능
- 개인용 장비 등에 사용 ( Windows 7/10, android, MS-DOS 등 )
- Multi :
- 동시에 여러 사용자가 시스템 사용 가능 ( 소유 권한 관리 필요 )
- 서버, 클러스터(cluster) 장비 등에 사용 ( Unix, Linux, Windows server 등 )
- Single :
- Single vs Multi user system
- 동시 실행 프로세스 수
- Single vs Multi tasking system
- Single :
- 시스템 내에 “하나의 프로세스(작업)”만 존재
- 운영체제 구조 간단 ( ex. MS-DOS )
- Multi
- 동시에 “여러 프로세스(작업)” 수행 가능 ( 작업들 사이의 동시 수행/동기화 관리해야 )
- 운영체제 구조 복잡 ( ex. Unix/Linux, Windows )
- Single :
- Single vs Multi tasking system
- 작업 수행 방식
- Batch Processing system ( 일괄 처리 시스템 )
- Time-sharing system ( 시분할 시스템 )
- Distributed Processing system ( 분산 처리 시스템 )
- Real-time system ( 실시간 시스템 )
작업 수행 방식
1) 순차 처리
-
운영 체제 개념 자체 X
-
사용자가 기계어로 직접 프로그램 작성
-
실행하는 작업 별 순차 처리
( 각각의 작업에 대한 준비 시간이 소요 )
2) Batch Systems
- 모든 시스템을 중앙에서 관리/운영
- 요청이 들어오는 작업을 모았다가 한번에 처리!
- 시스템 지향적
- 장점 : 많은 사용자가 시스템 자원 공유 가능 & 처리 효율 향상
- 단점 : 생산성 저하 ( 같은 유형 작업 모여야 ) & 긴 응답 시간
3) Time Sharing Systems
-
여러 사용자가 자원을 “동시”에 사용
-
A가 끝날 때 까지, B가 기다릴 필요 없어!
-
시간을 서로 나눠서 사용한다
-
-
OS가 파일 시스템 & 가상 메모리 관리
-
사용자 지향적
- 대화형 시스템
- 단말기 사용하여 접속
- 장점 : 응답 시간 단축 & 생산성 향상
- 단점 : 통신 비용 증가, 보안 문제 발생, 개인 사용자 체감 속도 저하
- 동사 사용자 UP -> 부하 UP -> 느려짐
4) Personal Computing
- 개인이 시스템 전체 독점
- CPU 활용률은 더 이상 고려 X ( 100%다 내가 쓸 수 있으니까 )
- 상대적으로 단순한 OS ( 혼자 쓰니가, 상대적으로 관리할 것 X )
- 장점 : 빠른 응답 시간
- 단점 : 낮은 성능
5) Parallel Processing System
-
단일 시스템 내에, 둘 이상의 프로세서 사용
-
여러 개의 CPU들을 여러 자원들이 공유함
( = Tightly-coupled system )
-
효과/목적
- 성능 UP
- 신뢰성 UP ( 일부 CPU가 고장나도 OK )
-
프로세서 간 관계&역할 관리 필요함
6) Distributed Processing System
-
네트워크를 기반으로, 여러 컴퓨터를 묶은 병렬 처리 시스템
( = Loosely-coupled system )
-
물리적으로는 분산 ( 통신을 통해서 연결됨 )
-
분산 운영체제
( 각 컴퓨터를 node라고 하고, 각 컴퓨터는 각각의 OS를 가짐. 이는 분산 운영체제를 통해 관리됨 )
-
각 구성 요소들 간 독립성 보장
-
ex) Cluster System, Client-server System
- 장점 : 자원 공유를 통한 성능 UP, 신뢰성 UP, 확장성 UP
- 단점 : 구축/관리 hard
7) Real-time System
- 작업 처리에 제한시간을 갖는 시스템
- 적시성이 자원 효율성보다 중요!
- 작업의 종류
- hard real-time task : 안지키면 치명적 ( ex. 원자력 발전소 )
- soft real-time task : 안지켜도 치명적이진 x ( ex. 동영상 스트리밍 )
- Non real-time task