크래프톤정글/혼공컴운

[혼공컴운] CH09 운영체제 시작하기

아람2 2024. 10. 16. 13:16
반응형

CH09 운영체제 시작하기

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

https://youtu.be/1PEe33_INZc?si=Vv3TcJZhays9PUOF

운영체제란

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

자원 - 프로그램 실행에 있어서 마땅히 필요한 요소 (컴퓨터의 네 가지 핵심 부품 포함)

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

운영체제는 중요한 프로그램이기 때문에 커널 영역이라는 특별한 영역에 적재되어 실행된다 

 

 

하드웨어와 가까이 있다

 

운영체제는 사용자를 위한 프로그램이 아니고, 프로그램을 위한 프로그램이다

문제 해결 능력 - 오류 메세지에 대한 깊은 이해 

 

09-2 운영체제의 큰 그림 

 

운영체제는 현존하는 프로그램 중 규모가 가장 큰 프로그램 중 하나 
운영체제가 제공하는 기능은 다양하지만, 가장 핵심적인 서비스는 존재한다 

ex. 자원에 접근하고 조작하는 기능, 프로그램이 올바르고 안전하게 실행되는 기능

 

운영체제의 심장, 커널 

운영체제에는 속하는데 커널에는 속하지 않는 기능?

유저 인터페이스 - UI, User Interface, 사용자와 컴퓨터 간의 통로일 뿐 운영체제의 핵심 기능 (커널) 은 아님

 

이중모드와 시스템 호출

사용자가 실행하는 프로그램은 자원에 직접 접근할 수 있을까? 

응용 프로그램이 자원에 접근하려면, 운영체제에 도움을 요청 ( = 운영체제의 코드를 실행) 해야 한다 

이러한 문지기 역할은 이중 모드로 구현된다 

 

이중 모드

CPU가 명령어를 실행하는 모드를 크게 사용자 모드와 커널 모드로 구분할 수 있다

사용자 모드 

운영체제 서비스를 제공받을 수 없는 실행 모드

커널 영역의 코드를 실행할 수 없는 실행 모드

자원 접근 불가 

커널 모드

운영체제의 서비스를 제공받을 수 있는 실행 모드

자원 접근을 비롯한 모든 명령어 실행 가능 

 

플래그 레지스터를 보고 자원에 접근할 수 있는지 없는지, 이중 모드를 파악한다

 

하드 디스크에 접근?
커널 모드와 사용자 모드 간 빈번하게 전환한다
리눅스의 명령어

 

운영체제의 핵심 서비스

프로세스 관리

프로세스 == 실행 중인 프로그램

수많은 프로세스들이 동시에 실행 (모든 프로세스가 메모리에 올라와있지 않을 수도 있다, Paging or Swaping)

동시다발적으로 생성/ 실행/ 삭제되는 다양한 프로세스를 일목요연하게 관리할 수 있어야 한다 

앞으로 프레소스와 스레드, 프로세스 동기화, 교착 상태 해결에 대해 배울 예정 

자원 접근 및 할당

CPU 접근 및 할당

CPU 스케줄링 - 어떤 프로세스를 먼저, 얼마나 오래 실행할까?

메모리 접근 및 할당

페이징, 스와핑 등 

 

입출력장치 접근 및 할당  

인터럽트 서비스 루틴 (운영체제가 제공해 주는 기능, 커널 영역에 적재되어 있는 코드) 

 

파일 시스템 관리 

관련된 정보를 파일이라는 단위로 저장 장치에 보관 

파일들을 묶어 폴더/ 디렉토리 단위로 저장 장치에 보관 

 

반응형