본문 바로가기

운영체제

2)운영체제 개요

1)운영체제의 역할

1. User Interface(편리성)

- CUI(Character User Interface)

- GUI(Graphical User Interface)

- EUCI(End-User Comfortable Interface)

 

2. Resource management(효율성)

- HW resource (processor, memory, I/O devices 등)

- SW resource (file, application, message, signal 등)

 

3. Process and Thread management

- 프로세스는 실행 주체

- 쓰레드는 가벼운 프로세스

 

4. System management(시스템 보호)

 

2)컴퓨터 시스템의 구성

운영체제의 핵심은 커널이다.

 

사용자가 커널에 직접 접근하면 문제가 생길 수 있으므로 사용자가 커널에 기능을 요청하는 통로를 System Call Interface라고 한다.

 

3)운영체제의 구분

1. 동시 사용자수

- Single-user system

- Multi-user system

 

2. 동시 실행 프로세스 수

- Single-tasking system

- Multi-tasking ststem

 

3. 작업 수행 방식(사용자가 느끼는 사용 환경)

- Batch processing system

- Time-sharing system

- Distributed processing system

- Real-time system

 

4)동시 사용자 수

1.단일 사용자(Single-user system)

- 한 명의 사용자만 시스템 사용 가능하다.

> 한 명의 사용자가 모든 시스템 자원을 독점한다.

> 자원관리 및 시스템 보호 방식이 간단하다.

 

- 개인용 장비(PC, mobile)등에 사용된다.

> Windows 7/10, android, MS-DOS 등

 

2.다중 사용자(Multi-user system)

- 동시에 여러 사용자들이 시스템 사용

> 각종 시스템 자원들에 대한 소유 권한 관리가 필요하다.

> 기본적으로 Multi-tasking 기능이 필요하다.

> OS의 기능 및 구조가 복잡하다.

 

- 서버, 클러스터 장비등에 사용한다.

> Unix, Linux, Windows server 등

 

5)동시 실행 프로세스 수

1. 단일 작업(Single-tasking system)

- 시스템 내에 하나의 작업(프로세스)만 존재한다.

> 하나의 프로그램 실행을 마친 뒤에 다른 프로그램이 실행된다.

- 운영체제의 구조가 간단하다.

> 예) MS-DOS

 

2. 다중 작업(Multi-tasking system)

- 동시에 여러 작업의 수행이 가능하다.

> 작업들 사이의 동시 수행, 동기화 등을 관리해야 한다.

- 운영체제의 기능 및 구조가 복잡하다.

> 예) Unix/Linux, Windows 등

 

6)작업 수행 방식

1. Batch processing system

> 일괄처리 시스템

 

2. Time-sharing system

> 시분할 시스템

 

3.Distributed processing system

> 분산처리 시스템

 

4.Real-time system

> 실시간 시스템

 

순차 처리(No OS, ~1940s)

- 운영체제 개념이 존재하지 않음.

> 사용자가 기계어로 직접 프로그램 작성

> 컴퓨터에 필요한 모든 작업을 프로그램에 포함시켜야 한다.

 

- 실행하는 작업 별 순차 처리

> 각각의 작업에 대한 준비시간이 소요된다.

 

Batch Systems(1950s~1960s)

- 모든 시스템을 중앙(전자계산소 등)에서 관리 및 운영

- 사용자의 요청 작업(천공카드 등)을 일정 시간 모아 두었다가 한번에 처리한다.

- 시스템 지향적(System-oriented)

- 장점

> 많은 사용자가 시스템 자원 공유

> 처리 효율(throughput) 향상

 

- 단점

> 생산성(productivity) 저하 (같은 유형의 작업들이 모이기를 기다려야 함)

> 긴 응답시간 (turnaround time) (작업 제출에서 결과 출력까지 약 6시간)

 

Time Sharing Systems(1960s~1970s)

- 여러 사용자가 자원을 동시에 사용한다.

> OS가 파일 시스템 및 가상 메모리를 관리한다.

- 사용자 지향적(User-oriented)

> 대화형(conversational, interactive) 시스템

> 단말기(CRT terminal) 사용

- 장점

> 응답시간(response time) 단축 (약 5초)

> 생산성(productivity) 향상 (프로세서 유휴 시간 감소)

 

- 단점

> 통신 비용 증가 (통신선 비용, 보안 문제 등)

> 개인 사용자 체감 속도 저하 (동시 사용자 수가 많아지면 시스템 부하가 많아지고 느려진다.)

 

Personal Computing

- 개인이 시스템 전체를 독점한다.

- CPU 활용률(utilization)이 고려의 대상이 아니다.

- OS가 상대적으로 단순하다. (하지만, 다양한 사용자 지원 기능을 지원한다.)

- 장점

> 빠른 응답 시간

- 단점

> 성능이 낮다.

 

Parallel Processing System

- 단일 시스템 내에서 둘 이상의 프로세서를 사용한다.(동시에 둘 이상의 프로세스를 지원한다.)

- 메모리 등의 자원을 공유한다.(Tightly-coupled system)

- 사용 목적

> 성능 향상

> 신뢰성 향상(하나가 고장나도 정상 동작이 가능하다.)

- 프로세서간 관계 및 역할 관리가 필요하다.

 

Distributed Processing Systems

- 네트워크를 기반으로 구축된 병렬처리 시스템(Lossely-coupled system)

- 물리적인 분산을 하고 통신망을 이용해 상호 연결한다.

- 각각의 운영체제를 탑재한 다수의 범용 시스템으로 구성된다.

- 사용자는 분산운영체제를 통해 하나의 프로그램, 자원처럼 사용이 가능하다.(은폐성, transparency)

- 각 구성 요소들간의 독립성을 유지하고 공동작업이 가능하다.

- Cluster system, client-server system, P2P 등

- 장점

> 자원 공유를 통한 높은 성능

> 고 신뢰성, 높은 확장성

- 단점

> 구축 및 관리가 어려움

 

Real-time Systems

- 작업 처리에 제한 시간(deadline)을 갖는 시스템

> 제한 시간 내에 서비스를 제공하는 것이 자원 활용 효율보다 중요하다.

 

- 작업(task)의 종류

> Hard real-time task

> 시간 제약을 지키지 못하는 경우 시스템에 치명적 영향

> 예) 발전소 제어, 무기 제어 등

 

> Soft real-time task

> 예) 동영상 재생 등

 

> Non real-time task

 

7)운영체제의 구조

- 커널

> OS의 핵심 부분(메모리 상주)

> 가장 빈번하게 사용되는 기능(시스템 관리 등)들을 담당한다.

> 동의어 - 핵(neucleus), 관리자(supervisor) 프로그램, 상주 프로그램(resident program), 제어 프로그램(control program) 등

 

- 유틸리티(Utility)

> 비상주 프로그램

> UI등 서비스 프로그램

 

단일 구조

- 장점

> 커널 내 모듈간 직접 통신(효율적 자원 관리 및 사용)

 

- 단점

> 커널의 거대화

> 오류 및 버그, 추가 기능 구현 등 유지보수가 어렵다.

> 동일 메모리에 모든 기능이 있어, 한 모듈의 문제가 전체 시스템에 영향을 끼친다.

 

계층 구조

- 장점

> 모듈화(계층간 검증 및 수정이 용이하다)

> 설계 및 구현의 단순화

 

- 단점

> 단일구조 대비 성능 저하

> 원하는 기능 수행을 위해 여러 계층을 거쳐야 한다.

 

마이크로 커널 구조

- 커널의 크기 최소화

> 필수 기능만 포함

> 기타 기능은 사용자 영역에서 수행한다.

 

8)운영체제의 기능

- 프로세스(Process) 관리

- 프로세서(Processor) 관리

- 메모리(Memory) 관리

- 파일(File) 관리

- 입출력(I/O) 관리

- 보조 기억 장치 및 기타 주변장치 관리 등

 

Process Management

- 프로세스(Process)

> 커널에 등록된 실행 단위(실행 중인 프로그램)

> 사용자 요청/프로그램의 수행 주체(entity)

 

- OS의 프로세스 관리 기능

> 생성/삭제, 상태관리

> 자원 할당

> 프로세스간 통신 및 동기화(synchronization)

> 교착상태(deadlock) 해결

 

- 프로세스 정보 관리

> PCB(Process Control Bloc)

 

Processor Management

- 중앙 처리 장치(CPU)

> 프로그램을 실행하는 핵심 자원

 

- 프로세스 스케쥴링(Scheduling)

> 시스템 내의 프로세스 처리 순서 결정

 

- 프로세서 할당 관리

> 프로세스들에 대한 프로세서 할당

> 한 번에 하나의 프로세스만 사용 가능하다.

 

Memory Management

- 주 기억 장치

> 작업을 위한 프로그램 및 데이터를 올려 놓는 공간

 

- Multi-user, Multi-tasking 시스템

> 프로세스에 대한 메모리 할당 및 회수

> 메모리 여유 공간 관리

> 각 프로세스의 할당 메모리 영역 접근 보호

 

- 메모리 할당 방법(scheme)

> 전체 적재

> 장점: 구현이 간단하다 / 단점: 공간이 제한적이다.

 

> 일부 적재(virtual memory concept)

> 프로그램 및 데이터의 일부만 적재한다.

> 장점: 메모리의 효율적 활용 / 단점: 보조기억 장치 접근이 필요하다.

 

File Management

- 파일: 논리적 데이터 저장 단위

- 사용자 및 시스템의 파일 관리

- 디렉터리 구조 지원

- 파일 관리 기능

> 파일 및 디렉터리 생성/삭제

> 파일 접근 및 조작

> 파일을 물리적 저장 공간으로 맵핑

> 백업 등

 

I/O Management

- 입출력(I/O) 과정

> OS를 반드시 거쳐야 한다.

'운영체제' 카테고리의 다른 글

5)프로세스 스케쥴링  (0) 2021.11.03
4)스레드 관리  (0) 2021.11.02
3)프로세스 관리  (0) 2021.11.02
1)컴퓨터 시스템 개요  (0) 2021.11.01