일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- S3
- AWS
- 데이터베이스
- 컴퓨터 네트워크
- sql
- dockerfile
- 데이터엔지니어링
- redshift
- 가상환경
- 정리
- 종류
- 운영체제
- 데이터 파이프라인
- HADOOP
- PYTHON
- airflow
- 데이터 웨어하우스
- Go
- 데이터 엔지니어링
- 파이썬
- 자료구조
- airflow.cfg
- Django
- 컴퓨터네트워크
- linux
- Docker
- http
- 데브코스
- TIL
- TCP
- Today
- Total
홍카나의 공부방
[운영체제] Ch.2 운영체제의 역할, 구분, 구조, 기능 본문
본 글은 김덕수 교수님의 2019년도 봄학기 운영체제(CPA310)
강의 내용을 바탕으로 요약 정리한 내용입니다.
https://sites.google.com/view/hpclab/courses/operating-system
운영체제의 역할
운영체제는 User Interface로 유저에게 편리성을 제공하고,
HW, SW 자원을 관리하면서 효율성을 높여주는 역할을 한다.
컴퓨터의 전체적인 구조를 나타내면 위와 같이 나타낼 수 있는데
여기서 커널이 제공하는 기능 중 User가 사용할 수 있는 기능은 system call interface를 통해 제공된다.
운영체제의 구분
운영체제는 기준에 따라 다음과 같이 구분할 수 있는데
- 동시 사용자 수에 따라 Single-user, Multi-user
- 동시 실행 프로세스 수에 따라 Single-Task, Multi-Task
- 작업 수행 방식에 따라 Batch, Time-Sharing, real-time system 등으로 구분된다.
single-user system은 우리가 사용하는 Windows같은 OS가 이에 속하고
Multi-user system은 컴공과 학생이라면 학부 시절에 한 번쯤은 써봤을 Linux 등이 속한다.
PuTTY 등을 이용하면서 학교 리눅스 서버에 접속하여 C 과제를 제출해본 적이 있는지?
이 때는 하나의 운영체제(ex. 학교 리눅스 서버)를 여러 사용자들이 동시에 접속하여 사용하게 된다.
그리고 요즘은 99% Multi-Task 방식이다.
Batch 방식의 경우 시스템 지향적 방식으로, Throughput은 좋을 수 있으나 생산성이 저하된다.
(작업들을 모아두었다가 일괄처리하는 방식이기 때문이다.)
시분할(Time sharing) 방식의 경우 운영체제가
여러 프로그램들에게 시간을 나눠주면서 자원을 번갈아 사용할 수 있도록 하는 방식이다.
Windows에서 흔히 지원하는 방식이다.
운영체제의 구조
운영체제는 여러 계층으로 구성되어있다. 일반적으로,
(1) 커널 : OS의 핵심 부분으로, CPU, 메모리, I/O 디바이스 등의 시스템 자원을 관리하며 메모리에 상주한다.
- 하드웨어와 시스템의 소프트웨어 컴포넌트 간 인터페이스를 제공하기도 한다.
(2) 유틸리티 : UI 등의 서비스 프로그램등이 포함되며, 비상주 프로그램이다.
(3) 시스템 콜(System Call) : 어플리케이션들이 OS로부터 서비스를 요청할 때 사용되는 메커니즘이다.
- 응용 프로그램들이 파일을 읽고 쓰거나, 새로운 프로세스를 만들거나, 메모리를 할당받을 때 시스템 콜이 발생한다.
- 시스템 콜은 응용 프로그램과 OS간의 표준 인터페이스를 제공하며, 시스템 자원에 접속하는 것을 허가한다.
- 쉽게 이야기 하면 OS가 응용프로그램에 제공하는 서비스다.
운영체제의 기능
• 프로세스(Process) 관리
• 프로세서(Processor) 관리
• 메모리(Memory) 관리
• 파일(File) 관리
• 입출력(I/O) 관리
• 보조 기억 장치 및 기타 주변장치 관리 등이 운영체제의 기능이다.
여기서 프로세스는 커널에 등록된 작업 단위, 커널에 등록되고 관리하에 있는 작업,
혹은 간단하게 실행 중인 프로그램이라고 이야기할 수 있는데 다음 챕터에서 보다 자세하게 정의하도록 한다.
OS의 프로세스 관리 기능에는
• 생성/삭제, 상태관리
• 자원 할당
• 프로세스 간 통신 및 동기화(synchronization)
• 교착상태(deadlock) 해결
• PCB (Process Control Bloc)로 프로세스 정보를 관리하는 것 등이 있다.
OS의 프로세서 관리 기능에는 프로세스 스케쥴링, 프로세스 할당 관리 등이 있다.
프로세스 스케쥴링은 시스템 내의 프로세스 처리 순서를 정하는 것인데,
뒤 챕터에서 Process State Transition Diagram 등을 학습하며 보다 자세히 살펴볼 것이다.
메모리 관리, 파일 관리, 입출력 관리도 뒤이어서 자세하게 살펴볼 것이다.
'Operating System' 카테고리의 다른 글
[운영체제] Ch.5-2 스케쥴링 알고리즘 (0) | 2023.03.24 |
---|---|
[운영체제] Ch.5-1 프로세스 스케쥴링의 목적, 기준, 단계, 정책 (0) | 2023.03.22 |
[운영체제] Ch.4 쓰레드의 개념, 유저 쓰레드, 커널 쓰레드 (0) | 2023.03.21 |
[운영체제] Ch.3 프로세스의 정의, 상태, state diagram, 인터럽트 (0) | 2023.03.18 |
[운영체제] Ch.1 운영체제 정의, 레지스터, 메모리 종류, 캐시 (0) | 2023.03.16 |