EverGiver
운영체제의 유형 본문
728x90
Multiple programing system
- 프로세서가 입출력 작업 시 다른 프로세서의 수행이 불가능하여 프로세서와 메인 메모리의 활용도가 떨어지는 batch processing system의 문제를 다중 프로세스 시스템 도입하여 해결
- 프로세서가 유휴 상태일 때 실행 대기 중인 다른 작업이 프로세서를 점유하여 사용할 수 있도록 동작
- Non-preemptive (비선점)
- 높고 효율적인 프로세서 사용률(효율적인 운영) 증가
- 많은 사용자의 프로세서가 동시에 프로세서를 할당받은 효과 (concurrent)
- 복잡한 프로세서 관리
▷ 대가 Process 관련 추가 메모리 공간 필요
▷ Process scheduling
- Preemptive : Time slice (quantum)
- 다중 프로세서를 논리적으로 확장한 개념, 프로세서가 다중 작업을 교대로 실행
- 다수의 사용자가 동시에 컴퓨터의 자원을 공유할 수 있는 기술
- 각 process에 일정한 프로세서 사용시간(time quantum)을 할당하고 교대로 프로세서 사용
▷ ms 수준의 time quantum
▷ Context switching overhead
▷ Response time과 processor efficiency의 trade-off
다중 프로세서 (multiple processor) 시스템
- 병렬처리 (parallel processing) : 단일 컴퓨터 시스템 내에서 둘 이상의 프로세서 사용, 동시에 둘 이상의 프로세서 지원
- 여러 프로세서와 시스템 버스, 메모리와 주변장치 등 공유
- 빠르고, 프로세서 하나가 고장 나도 다른 프로세서 사용하여 작업 계속, 신뢰성이 높다
- SMP (Symmetric Multiple Processing)과 ASMP (ASymmetric Multiple Processing)
Real-time processing system (실시간 처리 시스템)
- Reponse time이 정해져 있고 이를 지켜야 한다.
- 온라인 시스템은 실시간일 필요 없지만, 실시간 처리 시스템은 항상 온라인 상태
- 고정 시간 제약을 잘 정의하지 않으면 시스템 실패
- 실시간 처리 시스템의 두 가지 유형
- Hard real time processing system
▷ 작업의 실행 시작이나 완료에 대한 시간 제약 조건을 지키지 못할 때 시스템에 치명적인 영향을 주는 시스템
▷ 보장되는 컴퓨팅, 시간의 정확성과 컴퓨팅 예측성을 갖게 해야 한다.
▷ Ex) 무기 제어, 발전소 제어, 철도 자동 제어, 미사일 자동 조준 등이 이에 해당한다.
- Soft real time processing system
▷ 작업 실행에서 시간 제약 조건은 있으나, 이를 지키지 못해도 전체 시스템에 치명적인 영향을 미치지 않는 시스템
▷ Ex) 동영상
Distributed processing system (분산 처리 시스템)
- 시스템마다 독립적인 운영체제와 메모리로 운영, 필요시 통신하는 시스템
- 사용자에게는 중앙집중식 시스템처럼 보이는데, 다수의 독립된 프로세서에서 실행
- 데이터를 여러 위치에서 처리/저장, 여러 사용자가 공유
- 하나의 프로그램을 여러 프로세서에서 동시에 실행
운영체제의 서비스 제공
- Booting Service : 컴퓨터 하드웨어 관리, 프로그램을 실행할 수 있도록 컴퓨터를 시동
- ROM BIOS(or UEFI)의 OS loading 필요 - User service : 프로그래머가 프로그래밍 작업을 설계할 수 있도록 한다.
- User interfacce : CLI, Menu, GUI
- Program 실행
- I/O operation, file system access, error detection - System service : 시스템의 효율적인 동작 보장
- Resource allocation, account management, protection and security - System call : 프로그램이 운영체제의 기능을 서비스 받을 수 있는 프로그램과 운영체제 간의 인터페이스 제공 (API)
운영체제의 구조
- 운영체제가 점점 더 다양한 하드웨어와 소프트웨어를 지원하면서 구조 또한 복잡해짐
- 복잡한 시스템은 설계, 구현, 테스트, 유지 보수 등 모든 면에서 어렵다.
- 이것의 해결을 위해 운영체제를 설계하는 다양한 방법 등장
Monolithic kernel (단일구조)
- 초기에 생겨난 가장 보편적 형태
- 운영체제의 모든 기능을 커널(컴퓨터 운영 체제의 핵심이 되는 컴퓨터 프로그램으로, 시스템의 모든 것을 완전히 통제)과 동일한 메모리 공간에 적재 후 시스템 호출만으로 사용
- 커널의 핵심 기능을 구현하는 모듈들이 구분 없이 하나로 구성
- 수정과 유지 보수 매우 어려움
Hierarchical kernel (계층구조)
- 계층 구조에서는 비슷한 기능을 수행하는 요소를 그룹화하여 계층적으로 구성
- 사용자 프로세스의 요청을 수행할 때 여러 계층을 거쳐야 하므로, 한 계층에서 다음 계층으로 데이터를 전달할 때마다 추가적인 시스템 호출 발생
- 호출 한 번으로 서비스를 받는 단일 구조보다는 성능 낮다. - 단일 구조 운영체제보다 모듈화가 잘 되어 있다.
- 시스템 검증과 오류 수정 용이
Micro kernel
- Mach : 단일 커널의 문제점 해결 위해 1980년대 Carnegie-Mellon에서 개발 (최초의 micro-kernel)
- 커널에서 최소 기능만 포함시켜 크기를 대폭 줄이고 기타 기능은 사용자 공간으로 옮겨 사용자 영역에서 수행하는 서버 구현
- 하드웨어 초기화, 메모리 관리(주소 공간 관리), Process (Thread) 관리, 프로세스 간 통신, 프로세스 간 협력 동기화 기능만 실행
- 네트워크 시스템, 파일 시스템 상호작용과 장치 관리 등 대부분의 운영체제 구성 요소는 커널 외부, 즉 사용자 영역의 서버로 옮겨 구현
- 모듈화 정도가 높아 확장성, 이직성, 규모 확장성이 높다
- 모듈(커다란 장치나 배열 내에서 비교적 작은 크기의 부품으로써 독립적으로 설치되고, 교체되고, 사용될 수 있도록 설계된 구성요소를 말한다.) 간 통신이 빈번하게 발생하여 성능이 떨어질 수 있다.
728x90
'전공 > 운영체제' 카테고리의 다른 글
Process Concept (0) | 2022.03.21 |
---|---|
컴퓨터 동작 (0) | 2022.03.13 |
컴퓨터 시스템 소개 (0) | 2022.03.12 |
운영체제 발전 과정 (0) | 2022.03.06 |
운영체제 소개 (0) | 2022.03.06 |
Comments