[ 운영체제 ]
1. 정의
실행할 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 프로그램
- 모든 프로그램은 하드웨어를 필요로 한다.
- 이때 프로그램 실행에 마땅히 필요한 요소들을 (시스템) 자원이라고 하며, 프로그램 실행에 있어 반드시 필요하다.
(ex : cpu, 메모리, 입출력 장치와 같은 컴퓨터 부품들이 그 예시)
- 인터넷 브라우저, 게임과 같은 프로그램과 같은 프로그램이다.
2. 역할 및 특징
자원을 효율적으로 분배하고 관리 ( => 정부와 비슷한 역할 )
- 응용 프로그램과 하드웨어 사이에서 응용 프로그램이 필요한 자원을 할당하고, 응용 프로그램이 올바르게 실행되도록 관리한다.
- 다른 프로그램과 마찬가지로 메모리에 적재되어야 하는데,
운영체제는 특별한 프로그램이기 때문에 컴퓨터가 부팅될 때, 메모리 내 커널 영역이라는 공간이 적재되어 실행된다.
( 커널 영역을 제외한 사용자가 이용하는 응용 프로그램이 적재되는 영역은 사용자 영역 )
- 한 프로그램이 CPU를 독점하면, 다른 프로그램들이 올바르게 실행될 수 없기 때문에 운영체제는 최대한 공정하게 여러 프로그램에 CPU 자원을 할당한다.
- 하드웨어를 조작하고 관리하는 기능을 제공하기 때문에, 코드를 직접 작성할 필요가 없다.
[ 커널 ]
1. 정의
컴퓨터의 핵심기능인 자원에 접근하고 조작하는 기능, 프로그램이 올바르고 안전하게 실행되게 하는 기능을 담당
사용자가 실행하는 프로그램이 하드웨어 자원에 직접 접근하는 것을 방지해 자원을 보호한다.
2. 역할 및 특징
컴퓨터의 핵심기능인 자원에 접근하고 조작하는 기능, 프로그램이 올바르고 안전하게 실행되게 하는 기능을 담당
- 1차적으로 운영체제를 거쳐 접근할 수 있도록 함으로써, 문지기 역할을 수행한다.
- 운영체제가 설치된 모든 기기에는 커널이 있다. ( => 사람의 심장, 자동차의 엔진과 비슷한 역할 )
[ 이중모드 ]
1. 정의
CPU가 명령어를 실행하는 모드를 크게 사용자 모드/커널 모드로 구분하는 방식
2. 역할 및 특징
컴퓨터의 핵심기능인 자원에 접근하고 조작하는 기능, 프로그램이 올바르고 안전하게 실행되게 하는 기능을 담당
- 1차적으로 운영체제를 거쳐 접근할 수 있도록 함으로서, 문지기 역할을 수행한다.
- 운영체제가 설치된 모든 기기에는 커널이 있다. ( => 사람의 심장, 자동차의 엔진과 비슷한 역할 )\
- 사용자 모드와 커널모드로 실행 방법이 갈린다.
1. 사용자 모드
- 일반적인 응용 프로그램은 기본적으로 사용자 모드로 실행된다.
- 운영체제 서비스를 제공받을 수 없는 실행 모드
- 커널 영역의 코드를 실행할 수 없는 모드
- 하드웨어 자원에 접근하는 명령어를 실행할 수 없다.
2. 커널 모드
- 운영체제 서비스를 제공받을 수 있는 실행 모드
- 커널 영역의 코드를 실행할 수 있는 모드
- 하드웨어 자원에 접근하는 명령어까지 모두 실행할 수 있다.
시스템 호출
- 사용자 모드로 실행되는 프로그램이 자원에 접근하기 위해 운영체제에 요청을 보내 커널 모드로 전환될 때 필요한 요청
=> 이를 통해 커널 모드로 전환되어 서비스를 제공받을 수 있다.
- 일종의 소프트웨어 인터럽트
[ 운영체제의 핵심 서비스 ]
1. 프로세스 관리
- 실행 중인 프로그램( =프로세스 )
- 하나의 CPU는 하나의 프로세스만 실행할 수 있기에 여러 개의 프로세스의 실행을 전환하는 것을 반복하는데, 이 다양한 프로세스를 관리하고 실행하는 역할을 수행한다.
2. 자원 접근 및 할당
- 실행을 위해 자원을 필요로 하는 프로세스들이 사용할 자원에 접근하고 조직함으로써 프로세스에 필요한 자원을 할당해 준다.
2-1. CPU
- 한 번에 하나의 프로세스만 실행할 수 있는 CPU에게 어떤 순서로, 얼마나 할당할지 스케줄을 짠다.
2-2. 메모리
- 메모리에 적재된 다양한 크기와 주소를 가진 프로세스들을 어느 주소에 적재해야 할지 결정한다.
2-3. 입출력장치
- 인터럽트를 처리하는 서비스 루틴을 제공해 입출력작업을 수행한다.
3. 파일 시스템 관리
파일들을 폴더로 묶어 관리한다.
'👩💻 알고리즘 > 🎛️ 컴퓨터 구조 & OS' 카테고리의 다른 글
[혼공학습단 12기] 11강 - CPU 스케줄링 (0) | 2024.08.04 |
---|---|
[혼공학습단 12기] 10장, 프로세스와 스레드 (0) | 2024.07.28 |
[혼공학습단 12기] 8장, 입출력장치 (0) | 2024.07.22 |
[혼공학습단 12기] 7장, 보조기억장치 (0) | 2024.07.22 |
[혼공학습단 12기] 6장, 메모리 (0) | 2024.07.21 |