1시간짜리 공부하는데 3~4시간씩 걸리는게 정상인가요
ㅜㅠ
운영체제의 역할
운영체제의 역할은 크게 다음과 같다..
- User Interface (편리성)
- CUI(Character User Interface) - 캐릭터(문자열)로 이뤄진 Interface
- GUI(Graphical User Interface)- 그래픽으로 이뤄진 Interface
- EUCI(End-User Comfortable Interface) - 특정 목적을 위해 만들어진 Interface
- Resource Management (효율성)
- HW Resource - 프로세서, 메모리, inout device ...
- SW Resource - 파일, 어플리케이션, 메세지, 신호 ...
- Process and Thread Management
- 실행의 주체가 되는 프로세스와 스레드를 관리하는 역할
- System Management (시스템 보호)
컴퓨터 시스템의 구성
하드웨어를 관리하며 사용자에게 서비스를 제공하는 역할을 함을 알 수 있다.
커널은 굉장히 많은 기능을 제공한다.
하지만 사용자는 안전상의 문제로 인해 커널에 직접 접근할 수 없으며 Interface를 통해 서비스를 제공받을 수 있다.
이를 System Call Interface라고 칭하며, 사용자가 필요한 서비스를 Interface에 요청하여 콜백을 받는 통로라고 볼 수 있다.
다른 말론 커널이 제공하는 기능들 중 사용자가 사용할 수 있는 기능들을 모아놓은 곳을 칭하기도 한다.
직접 접근할 수 없는 이유는 시스템의 하드웨어단까지 관리하는 커널에 마음대로 접근한다면 시스템상 크나큰 문제를 야기할 수 있기 때문이다.
운영체제의 구분
동시 사용자의 수
- Single User System (Windows ...)
- 한명의 사용자만 시스템 사용 가능
- 한명의 사용자가 모든 시스템의 자원을 독점함
- 자원관리 및 시스템 보호 방식이 간단
- 개인용 장비(Personal Computer, Mobile) 등에 사용
- 한명의 사용자만 시스템 사용 가능
- Multi User System (Unix, Linux, Windows Server ...)
- 동시에 여러 사용자들이 시스템 사용
- 각종 시스템 자원들에 대한 소유 권한 관리 필요
- Multi Tasking 기능 필요
- 동시에 여러 사용자들이 시스템 사용
동시 실행 프로세스 수
- 단일 작업 (Single Tasking System)
- 시스템 내에 하나의 작업(프로세스)만 존재
- 하나의 작업이 끝난 뒤에 다른 작업을 실행할 수 있음
- 운영체제의 구조가 간단
- ex) MS-DOS
- 시스템 내에 하나의 작업(프로세스)만 존재
- 다중 작업 (Multi Tasking System)
- 동시에 여러 작업을 수행할 수 있음
- 여러 작업들 간의 동시 수행, 동기화 등을 관리해야 한다.
- 운영체제의 기능 및 구조가 상대적으로 복잡함
- ex) Unix/Linux, Windows ...
- 동시에 여러 작업을 수행할 수 있음
작업 수행 방식
해당 글 참고 고고고고고곡ㄲㄱ 넘 길어서 분리함
2022.03.13 - [CS/OS] - [OS] OS의 작업 수행 방식
운영체제의 구조
운영체제의 구조는 크게 두가지로 볼 수 있다.
커널
OS의 핵심 부분을 커널이라고 칭한다.
메모리에 상주하며, 가장 빈번하게 사용되는 기능(시스템 관리(메모리, 프로세서 관리))같은 항상 행해야되는 기능들이 존재하는 곳이다.
위에서 한 설명처럼 System Call을 통해 사용자에게 요청을 받고 응답을 내보낸다.
유틸리티
커널의 기능을 제한 기능들을 칭한다.
항상 메모리에 상주하지 않는 프로그램, UI, 서비스등의 프로그램이 존재한다.
운영체제의 구조의 형태
단일 구조
음.. 아키텍쳐로 비유를 해보자면 MVC와 가깝다고 볼 수 있다.
MVC는 C가 모든 작업을 하고, 그로 인해 작업하기가 비교적 편하고, 작업 시간이 비교적 빠르다 라는 장점이 있지만 C가 방대해지고 유지보수가 어려워진다 라는 단점이 있다.
OS의 단일 구조도 같다.
장점은 커널 내의 모듈들이 직접적으로 통신하며 효율적으로 자원을 사용하고 관리할 수 있지만, 단점으론 커널의 거대화가 있다.
커널이 거대해지며 오류, 추가 기능 구현 등 유지보수가 어렵고, 동일한 메모리에 모든 기능이 있어 한 모듈에 문제가 생기면 전체 시스템에 영향이 간다.
그래서 기능별로 따로 떼어서 계층으로 나누자라고 하고 생긴 구조가 계층 구조이다.
계층 구조
OS의 기능별로 나눠서 계층을 이룬 구조이다.
계층을 나눔으로써 모듈화가 확실해지고, 모듈화가 됨으로써 특정 계층에 어떠한 문제가 발생하였을 때 그 모듈에서 발생한 문제만 해결하면 되는 등의 장점이 생겼다.
하지만 기존 단일 구조에서는 특정 기능을 하기 위해선 커널 내에서 바로바로 기능을 활용할 수 있었는데, 계층화, 모듈화가 되며 원하는 기능 수행을 하기 위해 여러 계층을 거쳐야하는 단점이 생겼다.
장점
- 모듈화
- 계층간 검증 및 수정 용의
- 설계 및 구현의 단순화
단점
- 단일 구조 대비 성능 저하
운영체제의 기능
프로세스 관리
프로세스란?
- 커널에 등록된 실행 단위(실행중인 프로그램)이다.
- 사용자 요청/프로그램의 수행 주체
OS의 프로세스 관리 기능
- 생성/삭제 상태관리
- 자원 할당
- 프로세스간 통신 및 동기화
- 교착상태 해결
프로세서 관리
- 중앙 처리 장치(CPU) 관리 - 프로그램(프로세스)를 실행하는 핵심 자원 관리
- 프로세스 스케쥴링
- 시스템 내의 프로세스 처리 순서 결정
- 프로세서 할당 관리
- 프로세서들에 대한 프로세서 할당
- 한번에 하나의 프로세스만 사용 가능
메모리 관리
- 주기억장치 관리 - 작업을 위한 프로그램 및 데이터를 올려놓는 공간 관리
- Multi User, Multi Tasking System
- 프로세스에 대한 메모리 할당 및 회수
- 메모리 여유 공간 관리
- 각 프로세스의 할당 메모리 영역 접근 보호
- 메모리 할당 방법(Scheme)
- 전체 적재
- 장점: 구현이 간단하다.
- 단점: 공간이 제한적이다.
- 일부 적재
- 프로그램 및 데이터의 일부만 적재
- 장점: 메모리의 효율적 활용
- 단점: 보조기억 장치 접근 필요
- 전체 적재
파일 관리
- 파일 관리 - 논리적 데이터 저장 단위 관리
- 파일 및 Directory 생성/삭제
- 파일 접근 및 조작
- 파일을 물리적 저장 공간으로 Mapping
- 백업
- 사용자 및 시스템 파일 관리
- Directory 구조 지원
입출력 관리
입출력은 프로세서에서 바로 입출력 처리장치로 갈 수 없고, 반드시 운영체제를 거쳐서 가야한다.
Etc
- Disk 관리
- 네트워킹 관리
- 보안체제 관리
- 인터페이스 관리
어렵지만... 재미집니다.. 아니 억지인가..
출처: https://www.youtube.com/watch?v=knF9lzHA3LI&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN&index=4
'CS > OS' 카테고리의 다른 글
[OS] OS의 작업 수행 방식 (0) | 2022.03.13 |
---|---|
[OS] Computer System Overview (0) | 2022.03.05 |
댓글