취미가 좋다
운영체제 2 : Operating Systems overview 본문
이전 글에서 설명했듯이,
운영체제란 컴퓨터 시스템 자원(하드웨어)를 효율적으로 관리하여 사용자 또는 응용 프로그램에게 서비스를 제공하는 소프트웨어이다.
이 글에서는 운영체제의 역할, 구분, 구조, 기능에 대해서 살펴볼 것이다.
1. 운영체제의 역할
1. User Interface (편리성)
- 사용자가 시스템을 편리하게 사용할 수 있도록 편리성을 제공한다.
- 과거에는 문자를 기반으로 사용자가 입력하고, 결과도 문자로 받는 CUI를 사용하였다.
- 현재에는 그림 형태로 되어 있는 GUI를 사용한다.
- 특별한 목적을 위해 만들어진 기기는 그 사용자가 편리하게 사용할 수 있도록 EUCI를 사용한다.
2. Resource management (효율성)
- 주어진 자원을 잘 활용하여 서비스를 효율적으로 제공한다.
- HW resource (프로세서, 메모리, I/O devices, Etc.)
- SW resource (file, application, message, signal, Etc.)
3. Process and Thread management
- Process : 대표적인 소프트웨어 리소스로 프로그램을 실행하는 주체
4. System mangement (시스템 보호)
컴퓨터 시스템의 구성
가장 먼저 컴퓨터 하드웨어가 있고, 그 위에 OS가 있다.
그 위에 사용자들이 사용하는 어플리케이션이나 여러 프로그램이 있다.
운영체제는 커널과 인터페이스로 나누어 볼 수 있으며, 커널은 운영체제의 핵심을 모은 것이다.
이 때, 사용자가 커널에 직접 접근하면 문제가 생길 수 있으므로, System Call Interface로 커널에 접근한다.
즉, 커널이 제공하는 기능들 중에서 사용자가 사용할 수 있는 기능들을 모아둔 것들이 System Call이다.
2. 운영체제 구분
동시 사용자 수
단일 사용자 single-user system
- 한 명의 사용자가 모든 시스템 자원을 독점하는 형태로, 자원관리 및 시스템 보호 방식이 간단하다.
- Windows, android 등
다중 사용자 multi-user system
- 동시에 여러 사용자들이 시스템을 사용하는 형태로, 자원에 대한 소유권에 대한 관리가 필요하다.
- 기본적으로 multi-tasking 기능이 필요하다.
- 상대적으로 운영체제의 기능이 복잡하다.
- 서버 (Unix, Linux 등)
동시 실행 프로세스 수
단일 작업 single-tasking system
- 시스템 내에 하나의 프로세스만 존재하고 운영체제의 구조가 간단하다.
다중 작업 multi-tasking system (Multiprogramming system)
- 동시에 여러 개의 프로세스를 수행한다.
- 단일 작업보다 운영체제의 기능 및 구조가 복잡하다.
작업 수행 방식 (사용자가 느끼는 사용 환경)
1. 순차 처리
- 초창기 방식
- 사용자가 직접 명령어 계산 대상, 결과 저장 위치와 방법 등을 모두 기계어로 직접 프로그램을 작성해야 했고, 각각의 작업에 대한 준비 시간이 오래 걸렸다.
2. Batch processing system
- 모든 시스템을 중앙에서 관리하고 운영하는 방식이다.
- 사용자의 요청 작업을 중앙에 일정 시간 모았다가 한번에 처리한다.
- 시스템 지향적
- 장점
- 많은 사용자가 시스템 자원을 공유하여 처리 효율(throughput)이 향상된다.
- 단점
- 같은 유형의 단점들이 모이기를 기다려야 하기 때문에 생산성이 저하된다.
- 결과 출력까지의 응답시간이 너무 길다.
3. Time-sharing system
- 프로그램 A, B, C를 실행시킨다고 할 때, 시간을 고르게 할당하여 A->B->C->A->B->C->A... 순서로 자원을 분배한다.
- OS가 파일 시스템 및 가상 메모리를 관리한다.
- 사용자 지향적
- 대화형 시스템
- 화면에 보여주고 입력을 전달해주는 단말기 (CRT terminal)를 사용한다.
- 장점
- 응답시간이 단축되고, 프로세서의 유휴 시간이 감소하여 생산성이 향상되었다.
- 단점
- 통신 비용이 증가하고 보안 문제가 발생했다.
- 동시 사용자 수가 많다면 시스템에 부하가 커져서 많이 느려졌다.
4. Personal Computer
- 개인이 시스템 전체를 독점하는 형태이다.
- CPU 활용률은 고려의 대상이 아니고, 사용자의 편리성이 중요하였다.
- 장점
- OS가 상대적으로 단순해졌고, 응답시간이 빠르다.
- 단점
- 혼자 사용하는 것에 좋은 장비를 쓰긴 어려우므로 성능이 낮다.
5. Parallel Processing Ssystem
- 단일 시스템 내에서 둘 이상의 프로세서를 사용한다.
- CPU는 여러 개지만 다른 자원들은 공유한다. (Tightly-coupled system)
- 사용 목적
- 성능 향상
- 신뢰성 향상 (CPU가 여러 개라면 하나가 고장나도 정상 동작이 가능하다.)
- 프로세서간 관계 및 역할 관리가 필요하여 조금 복잡해졌다.
6. Distributed processing system
- 여러 프로세서를 사용한 것이 아니라, 네트워크를 기반으로 여러 컴퓨터를 사용한 병렬처리 시스템이다.
- 물리적인 통신망을 이용하여, 구축하기 쉽다.
- 각 노드(컴퓨터)는 다른 운영체제를 사용므로, 그것들을 하나의 프로그램이나 자원처럼 사용하는 분산운영체제를 사용한다.
- 장점
- 자원들을 쉽게 붙일 수 있고, 높은 성능을 얻을 수 있다.
- 신뢰성이 높다.
- 단점
- 구축이나 관리가 어렵다.
7. Real-time system
- 작업 처리에 제한 시간(deadline)을 갖는 시스템이다.
- Hard real-time task
- 시간 제약을 지키지 못하는 경우 시스템에 치명적인 영향이 가는 일
- 발전소 제어, 무기 제어 등
- Soft real-time task
- 시간 제약을 지키지 못해도 괜찮은 일
- 동영상 재생 등
3. 운영체제의 구조
커널 (Kernerl)
- OS의 핵심 부분으로, 가장 많이 쓰는 기능들을 담당한다.
- 시스템 관리 (리소스 - 프로세스, 메모리 등)
- 메모리에 항상 올라가 있다.
유틸리티 (Utility)
- UI 등 서비스 프로그램
- 메모리에 항상 올라가 있지는 않는다. (비상주 프로그램)
단일 구조
: 커널의 기능을 하나의 거대한 커널에 모아둔 운영체제 구조이다.
- 장점
- 커널 내 모듈간 직접 통신하여 효율적으로 자원을 관리하고 사용한다.
- 단점
- 커널이 거대하여 오류나 버그가 발생하기도 하고, 유지 보수가 어렵다.
- 동일 메모리에 모든 기능이 있어서, 한 모듈에 문제가 생긴다면 전체 시스템에 영향이 간다.
여러 응용 프로그램 |
시스템 호출 인터페이스 |
커널 ( 메모리 관리자 프로세서 스케줄러 프로세스 간 통신 파일 시스템 입출력 관리자 네트워크 관리자 ) |
계층 구조
: 기능 별로 나누어서 계층을 나눈 운영체제 구조이다.
- 장점
- 모듈화하여 계층간 검증과 수정에 용이하다.
- 설계와 구현이 단순하다.
- 단점
- 단일구조보다 성능이 떨어진다.
응용 프로그램 |
입출력 관리 |
메시지 해석기 |
메모리 관리 |
프로세서 스케줄링 |
하드웨어 |
마이크로 커널 구조
: 커널에 필수 기능만 담고, 나머지는 사용자 영역에서 응용 프로그램처럼 실행하도록 하는 운영체제 구조이다.
4. 운영체제의 기능
- 프로세스 (Process) 관리
- 프로세서 (Processor) 관리
- 메모리 (Memory) 관리
- 파일 (File) 관리
- 입출력 (I/O) 관리
- 보조 기억 장치 및 기타 주변장치 관리 등
1. Proess Management
프로세스 (Process)
- 커널에 등록된 실행 단위로, 실행 중인 프로그램이라고 할 수 있다.
- 사용자의 요청을 처리하고, 어떤 기능을 수행하는 주체이다.
OS의 프로세스 관리 기능
- 프로세스를 생성, 삭제, 상태를 관리한다.
- 자원을 요청하면 주고, 통신이 가능하게 해준다.
- 여러 개의 프로세스가 하나의 자원을 동시에 쓰려고 할 때 교착상태(deadlock)이 일어나면 해결한다.
- 프로세스 정보를 관리하기 위한 PCB (Process Control Bloc)을 가지고 있다.
2. Processor Management
중앙 처리 장치 (CPU)
- 프로그램을 실행하는 핵심 자원이다.
프로세스 스케줄링 (Scheduling)
- 시스템 내의 프로세스 처리 순서를 결정한다.
프로세서 할당 관리
- CPU를 누구에게 얼마만큼 줄 것인지, 프로세스들에 대한 프로세서 할당을 정한다.
- 한 번에 하나의 프로세스만 사용 가능하다.
3. Memory Management
주기억장치
- 작업을 위한 프로그램 및 데이터를 올려 놓는 공간 (DRAM)
Multi-user, Multi-tasking 시스템
- 여러 명 혹은 여러 프로세스가 메모리를 사용해야 하므로, 어떻게 할당하고 회수할 것인지 결정한다.
- 메모리의 공간을 어떻게 체크하며 여유 공간을 관리할 것인지 결정한다.
- 각 프로세스의 할당 메모리 영역 접근을 보호한다.
메모리 할당 방법 (scheme)
- 메모리 공간을 어떻게 관리하고 나누어 줄 것인지
- 전체 적재
- 일부 적재 (virtual memory concept)
4. File Management
파일
- 논리적 데이터 저장 단위
- 사용자 및 시스템의 파일 관리
- 디렉토리 (directory) 구조 지원
- 파일 관리 기능
- 파일 및 디렉토리를 생성하고 삭제한다.
- 파일 접근 및 조작
- 파일을 물리적 저장 공간으로 사상 (mapping)
- 백업 등
5. I/O Management
입출력(I/O) 과정
- 프로세스가 키보드와 같은 입출력 처리 장치에 직접 접근하지 못하고, 반드시 OS를 거쳐야 한다.
6. Others
- Disk
- networking
- Security and Protection system
- Command interpreter system
- System call interface
- 응용 프로그램과 OS 사이의 인터페이스
- OS가 응용프로그램에 제공하는 서비스
본 글은 HPC Lab. KOREAHECH YOUTUBE 채널의 김덕수 교수님 강의를 보고 작성되었습니다.
[Course] Operating System (CPA310) - 운영체제 강의
o Operating System (운영체제), CPA310, KOREATECH o Instructor: Duksu Kim (김덕수) o Course homepage: https://sites.google.com/view/hpclab/courses/operating-system 운...
www.youtube.com
'Computer Science > 운영체제' 카테고리의 다른 글
운영체제 5 : Process Scheduling (2) (0) | 2021.01.06 |
---|---|
운영체제 5 : Process Scheduling (1) (0) | 2021.01.06 |
운영체제 4 : Thread management (0) | 2021.01.05 |
운영체제 3 : Process Management (0) | 2021.01.05 |
운영체제 1 : Computer System Overview (0) | 2021.01.04 |