본문 바로가기
CS

[CS] 운영체제 (1) 운영체제란?

by BK0625 2023. 7. 13.
반응형

운영체제를 공부하며 정리한 내용입니다

 

 

 

 

운영체제를 알아야 하는 이유

 

모든 프로그램은 실행을 위해 자원(시스템 리소스)을 필요로 한다. 자원은 프로그램 실행에 있어 마땅히 필요한 요소라고 할 수 있다. 운영체제는 이러한 자원들을 실행할 프로그램에 필요한만큼 할당하고 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램이다. 그래서 메모리에 적재되는데 운영체제는 커널 영역에 적재가 된다. 사용자가 특정 목적을 위해 사용하는 일반적인 프로그램을 응용 프로그램이라고 하는데 이건 사용자 영역에 적재된다. 운영체제는 응용 프로그램을 메모리에 적재해주는 등 메모리 관리를 한다. 또한 CPU 역시 관리한다. 어떤 프로그램을 나중에 실행할지 얼마나 오래 실행할지 등을 관리하는 것이다. 입출력 장치 역시 관리하며 하드웨어랑 응용프로그램 사이에 위치해서 그 사이를 연결 지어주는 프로그램이라고 볼 수 있다.

 

커널

운영체제가 제공하는 기능은 다양하지만 가장 핵심적인 서비스는 존재한다. (자원에 접근하고 조작하는 기능, 프로그램이 올바르고 안전하게 실행되게 하는 기능 등) 이러한 운영체제의 핵심 서비스를 담당하는 부분을 커널이라고 한다. 물론 유저 인터 페이스처럼 운영체제에 속하는데 커널에는 속하지 않는 것도 있다. 그냥 사용자와 컴퓨터 가느이 통로일 뿐이기 때문이다.

 

사용자의 프로그램은 직접 자원에 접근할 수 없다. 직접 접근은 매우 위험하기 때문이다. 운영체제는 응용 프로그램들이 자원에 접근하려 할 때 오직 자신을 통해서만 접근하도록 하여 자원을 보호한다. 따라서 운영체제의 코드를 실행을 해서 자원에 접근할 수 있다.

 

 

이중모드

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

 

- 사용자 모드 

운영체제 서비스를 제공받을 수 없는 실행 모드이다. 또한 커널 영역의 코드를 실행할 수 없으며 따라서 자원에 접근이 불가하다.

 

- 커널 모드

운영체제의 서비스를 제공받을 수 있는 실행 모드이다. 자원 접근을 비롯한 모든 명령어를 실행 가능하다.

 

플래그 레지스터의 슈퍼바이저 플래그를 통해 어떤 모드인지 알 수 있다.

 

시스템 호출은 커널 모드로 전환하여 실행하기 위해 특정 명령어를 통해 호출하는 일종의 소프트웨어 인터럽트이다. 운영체제마다 시스템 호출은 정해져 있는데 시스템 호출이 처리되는 방식은 하드웨어 인터럽트 처리 방식과 유사하다.

 

 

운영체제의 핵심 서비스

프로세스 관리

프로세스는 메모리에 적재되어 실행 중인 프로그램을 뜻한다. 수많은 프로세스들이 동시에 실행 되는데 이 프로세스들을 관리해준다. 즉 동시다발적으로 생성/실행/삭제 되는 다양한 프로세스를 일목요연하게 관리해야한다.(프로세스와 스레드, 프로세스 동기화, 교착상태 해결 등)

 

자원 접근 및 할당

CPU 접근 및 할당을 관리하는데 어떤 프로세스를 먼저, 얼마나 오래 실행할지를 결정하는 CPU 스케줄링을 한다. 또 페이징, 스와핑 등 메모리 접근 및 할당을 하게 되며 인터럽트 서비스 루틴 등 입출력 장치 접근 및 할당을 하게 된다.

 

파일 시스템 관리

관련된 정보를 파일이라는 단위로 저장 장치에 보관, 파일들을 묶어 폴더 단위로 저장 장치에 보관하게 된다.

 

반응형