Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
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
Tags
more
Archives
Today
Total
관리 메뉴

개발계발

운영체제란? 본문

OS

운영체제란?

Ju_Nik_E 2024. 3. 27. 15:39

운영체제

사용자를 위한 프로그램이 아닌 사용자가 실행하는 프로그램을 위한 프로그램이다.

 

즉, 사용자가 실행하는 응용 프로그램이 올바르게 실행되도록 돕고 자원을 할당해 주는 프로그램
이를 제대로 이해하기 위해서는 커널시스템 호출(System Call) 의 이해가 필요하다.

커널영역

메모리는 크게 커널영역사용자영역으로 나뉜다. 운영체제도 결국 프로그램 중 하나인데, 운영체제는 컴퓨터 부팅 시 메모리의 커널영역에 적재되어 하드웨어를 직접 조작할 수 있게 된다.(사용자 영역의 프로그램은 기본적으로 하드웨어 제어 불가)

그럼 사용자 프로그램이 하드디스크에 데이터를 저장하는 등의 하드웨어 제어를 하려면 어떻게 해야함???
-> 이 때, 시스템 콜이라는 개념이 나온다.

위 사진과 같이, 사용자영역에서 실행되던 프로그램이 하드웨어 제어를 system call을 요청하면 커널모드에서 실행 뒤 다시 사용자영역으로 복귀한다.

프로세스

지금까지 프로그램이라고 했지만, 정확히 얘기하면 실행 중인 프로그램은 프로세스(메모리에 적재되어 실제로 실행중인 프로그램)라고 한다.
일반적으로 CPU는 한 번에 하나의 프로세스만 실행할 수 있다.

 

하지만, 컴퓨터를 사용하면 프린트를 해야하는 프로세스 / 하드웨어를 써야 하는 프로세스 / 당장 실행해야하는 프로세스 / 키보드를 사용해야하는 프로세스 등 여러 프로세스가 동시에 실행되는 걸 알 수 있다.

 

이를 위해 운영체제는 위 예시처럼 다양한 프로세스를 관리해주는 것 뿐만 아니라, CPU 스케쥴링을 통해 어떤 프로세스부터 얼마나 CPU를 이용하게 하는 지 결정한다.

 

뿐 만 아니라, 컴퓨터 실행부터 종료까지 대부분의 기능을 OS가 처리하는데 이번 포스팅에서는 키워드 정도만 정리하고 자세한 내용은 따로 포스팅할 예정이다.

CPU 스케쥴링

어떤 프로세스가 CPU를 점유하고 얼마나 오래 사용하게 할 지 결정

메모리 관리

새로운 프로그램이 실행될 때 메모리를 할당하고, 메모리가 꽉 차 있는 경우 혹은 메모리 공간이 남아있을 경우의 처리 방법(가상 메모리)

입출력

프로세스가 하드웨어 제어가 필요할 때, 해당 프로세스의 작업을 백업하고 인터럽트 서비스 루틴을 제공해 입출력 작업을 수행

파일 시스템 관리

파일을 한 곳에 묶어 폴더로 관리하고, 생성 / 삭제하는 행위

비고

개발을 할 때 가상 머신이라는 말을 많이 들어봤을 텐데, 예를 들어 윈도우 운영체제에 리눅스를 가상 머신으로 띄우는 경우면 그 가상 머신은 하드웨어를 직접적으로 제어할 수 있는 OS인가? 의문이 들 수 있다.
-> NO이다. 가상 머신도 결국 사용자모드에서 실행되는 프로그램이고, 실제 커널 모드에 있는 운영체제를 통해 하드웨어를 제어하게 된다.

 

'OS' 카테고리의 다른 글

교착 상태  (0) 2024.04.06
동기화  (0) 2024.04.04
CPU 스케줄링  (1) 2024.04.03
스레드  (0) 2024.04.03
프로세스  (2) 2024.04.03