1. 운영체제 개념
- 운영체제 : 실행할 프로그램에 CPU, 메모리, 보조기억장치, 입출력장치 등과 같은 컴퓨터 부품들을 할당하고, 프로그램이 올바르게 실행되도록 돕는 프로그램이다. 컴퓨터가 부팅될 때 항상 메모리 내 커널 영역에 적재되어 실행된다. 운영체제는 실행할 프로그램을 메모리에 적재하고, 더 이상 실행되지 않는 프로그램을 메모리에서 삭제하며 지속적으로 메모리 자원을 관리한다. 또한 한 프로그램이 CPU를 독점할 수 없게 최대한 공정하게 여러 프로그램에 CPU를 할당한다.
=> 커널 영역에 적재되어 사용자 영역에 적재된 프로그램들에 자원을 할당하고 이들이 올바르게 실행되도록 돕는 역할
=> 운영체제 덕분에 개발자는 하드웨어를 조작하는 코드를 직접 작설할 필요 없이 간편하게 개발할 수 있다.
- 응용 프로그램 : 사용자가 특정 목적을 위해 사용하는 일반적인 프로그램을 의미한다. ex)인터넷 브라우저, 메모장, 워드 등과 같은 프로그램.
2. 운영체제 큰 그림
- 커널 : 운영체제의 핵심 서비스를 담당하는 부분이다. 자원에 접근하고 조작하는 기능, 프로그램이 올바르고 안전하게 실행되게 하는 기능이 운영체제의 핵심 서비스이다.
- 이중 모드 : CPU가 명령어를 실행하는 모드를 사용자 모드와 커널 모드로 구분하는 방식.
- 사용자 모드 : 운영체제 서비스를 제공받지 못하는 모드. 커널 영역의 코드를 실행할 수 없다.
- 커널모드 : 운영체제 서비스를 제공받을 수 있는 실행 모드. 자원에 접근하는 명령어를 실행할 수 있다.
- 시스템 호출(시스템 콜) : 사용자 모드로 실행되는 프로그램은 시스템 호출을 통해 커널 모드로 전환하여 운영체제 서비스를 제공받을 수 있다. 이를 소프트웨어 인터럽트라고 한다.
- 운영체제의 핵심 서비스
- 프로세스 관리 : 다양한 프로세스를 일목요연하게 관리하고 실행하게 해준다.
- 자원 접근 및 할당
- CPU : 운영체제는 프로세스들에 공정하게 CPU를 할당하기 위해 어떤 프로세스부터 CPU를 이용하게 할 것인지, 얼마나 CPU를 오래 이용하게 할지를 결정한다.
- 메모리 : 운영체제는 새로운 프로세스가 메모리에 적재될 때마다 어느 주소에 적재해야 하는지 결정한다.
- 입출력장치 : 인터럽트 서비스 루틴은 운영체제가 제공하는 기능으로 커널 영역에 있다. 즉, 인터럽트 서비스 루틴을 제공함으로써 입출력 작업을 수행한다.
- 파일 시스템 관리 : 운영체제는 보조기억장치 속 데이터를 파일과 디렉터리로 관리한다.
- 정리-
운영체제의 핵심 서비스를 제공하는 부분을 커널이라 한다.
사용자 프로세스가 커널 영역의 코드를 실행하기(커널의 서비스를 제공받기) 위해서는 사용자 모드에서 커널 모드로 전환해야 하고 이것은 시스템 호출을 통해 이루어진다.
대표적인 커널의 서비스로는 프로세스 관리, 자원 접근 및 할당, 파일 시스템 관리가 있다.
'CS > 운영체제' 카테고리의 다른 글
운영체제 - (5) 파일 시스템 (0) | 2023.02.04 |
---|---|
운영체제 - (4) 가상 메모리 (0) | 2023.01.31 |
운영체제 - (3) CPU 스케줄링, 프로세스 동기화, 교착 상태 (0) | 2023.01.29 |
운영제체 - (2) 프로세스와 스레드 (1) | 2023.01.28 |
댓글