[CS] 운영체제 - 운영체제

이상혁·2023년 9월 17일
0

Computer science

목록 보기
9/15
혼자 공부하는 컴퓨터 구조 + 운영체제를 읽고 공부한 내용입니다.

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

운영체제란

운영체제는 실행할 프로그램에 필요한 자원을 할당하고 프로그램이 올바르게 실행이 되도록 돕는 프로그램이다.

운영체제도 프로그램이기 때문에 메모리에 적재가 되어야 한다.
운영체제는 특별한 프로그램이기 때문에 커널영역이라는 특별한 곳에 적재가 된다.
이 커널영역을 제외한 메모리 공간을 사용자 영역이라고 한다.

커널 영역에서 운영체제는 실행할 프로그램을 메모리 적재하고, 더 이상 실행이 되지 않는 프로그램을 메모리애서 삭제하며 메모리를 관리한다.
또 CPU를 최대한 공정하게 여러 프로그램에 CPU자원을 할당한다.

이러한 운영체제에 대해서 잘 알아야 문제 해결의 실마리를 찾을 수 있다.

운영체제의 큰 그림

커널

운영체제가 메모리에 적재하는 곳으로 자원에 접근을 하고 조작하는 기능, 프로그램이 올바르고 안전하게 실행되게 하는 기능 즉, 운영체제의 핵심 서비스를 담당하는 부분을 커널이라고 한다.

운영체제가 제공하는 서비스 중에 커널 영역에 포함이 되지 않는 서비스는 사용자 인터페이스가 있다.

이중 모드와 시스템 호출

운영체제는 자원에 접근을 하려고 할 때, 자신만을 거쳐 접근을 하게 하면서 자원을 보호한다.
프로그램은 시스템 영역에 있고, 자원을 사용하기 위해서 운영체제에 요청을 해야 한다.
이렇게 운영체제은 프로그램과 자원의 문지기 역할을 하며 이중모드를 구현한다.

이중모드커널모드사용자모드로 구분을 하는 방식이다.
사용자 모드는 운영체제가 제공하는 서비스를 제공받을 수 없는 실행모드이다.
커널 모드는 운영체제가 제공하는 서비스를 제공받을 수 있는 실행모드이다.

이를 정리하면 프로그램은 사용자 모드로 실행이 되며 이는 운영체제가 제공하는 서비스를 사용할 수 없다.
그래서 운영체제의 서비스를 이용하기 위해서 커널 모드로 전환을 해야하는데 이 때, 운영체제에게 서비스를 사용하기 위해서 요청하는 것을 시스템 호출이라고 한다.

서비스 호출서비스 콜이라고 부르며 일종의 인터럽트이다.
서비스 호출의 인터럽트를 소프트웨어 인터럽트라고 한다.

과정을 살펴보면
프로그램이 운영체제의 서비스를 이용하기 위해 시스템 콜을 발생시켜 커널 모드로 전환하고
운영체제내에서 요청한 서비스를 수행하기 위해서 코드를 실행한다.
그 후 다시 사용자 모드로 전환해서 프로그램의 실행을 이어 나간다.

운영체제의 핵심 서비스

운영체제의 핵심 서비스는 프로세스 관리, 자원 접근 및 할당, 파일 시스템 관리이다.

프로세스 관리는 CPU를 어떻게 프로세스에 분배할 지, 어떻게 프로세스를 전환할 지 등 다양하고 일목요연하게 괸리하고 실행해주는 서비스이다.
자원 접근 및 할당은 CPU, 메모리, 입출력 장치등 사용 가능한 자원들을 보호하고 접근 및 프로세스에 할당을 관리하는 서비스이다.
파일 시스템 관리는 파일이나 폴더를 관리하는 파일 시스템을 지원하는 서비스이다.

profile
개발 공부 하기 위해 만든 블로그

0개의 댓글