15 April 2024

운영체제

by 꽈배기

운영체제

모든 프로그램은 실행을 위해 자원을 필요로 한다.

자원

운영체제는

image

다만 운영체제 또한 프로그램이기에 메모리에 적재되는데, 특정한 영역에 적재된다 그것이 커널 영역이다. 프로그램이 실행될 때 운영체제는 프로세스가 할당받아야 하는 만큼의 크기를 메모리에 로드해주고 이를 관리하는 역할을 수행한다.


post-thumbnail

멀티태스킹 환경에서는 다양한 프로그램을 동시에 사용할 수 있는데, 이는 CPU가 컨텍스트 스위칭을 통해 프로세스에 대한 접근을 번갈아가며 스레드 작업을 수행해준다. 또한 운영체제는 이러한 CPU의 우선순위 작업 또는 프로세스 점유를 관리한다. IO에 관한 관리도 수행하는데 예를 들어 한번에 하나만 접근 가능한 입출력 장치가 있다면 이를 관리해주기도 한다.

커널이란

운영체제에 존재하는 핵심적인 기능

이러한 기능을 수행하는 것을 커널이라고 한다.

운영체제의 서비스 종류

시스템 콜과 이중 모드

사용자 계층에서 이루어지는 응용프로그램들은 이러한 자원에 직접적으로 접근할 수 없다. 만약 프로세스가 실행되면서 CPU의 주도권을 탈취하려하거나 메모리에 저장된 내용을 덮는 등 오류를 발생 시킬 수 있기 때문에 직접적인 접근을 제한한다. 이러한 접근은 모든 응용프로그램들이 운영체제를 거치면서 안정성을 보장하게 된다.

이중모드

CPU가 명령어를 실행하는 모드를 크게 사용자 모드와 커널 모드로 구분하는 방식이다.

사용자 모드

커널 모드

간단히 얘기하면 결국 이런 실행모드가 존재하는 이유는 사용자가 운영체제의 내부 메모리를 건드려 오류를 발생시킬 염려 때문에 아예 접근권한을 막아버리는 것이다.

플래그 레지스터 (상태 레지스터로써 프로세서의 현재 연산결과 상태등의 정보를 보유)

시스템 콜

image

시스템 콜이 처리되는 방식은 하드웨어 인터럽트 처리 방식과 유사하다.

응용프로그램이 자원을 활용하기 위해선 커널모드로의 전환이 필요함을 알았다. 그렇다면 CPU의 커널모드 진입은 어떻게 통제되는가?

응용프로그램이 커널 모드 진입을 위한 인터페이스를 시스템 콜이라 한다. 이 시스템 콜을 통해 커널모드로 전환된다. 시스템 콜은 소프트웨어 인터럽트의 한 종류이다.

운영체제의 핵심 서비스

tags: ComputerScience