🖥️ 운영체제 🖥️
운영체제는 현존 프로그램 중 규모가 가장 큰 프로그램 중 하나이다. (iOS만 봐도 용량이...)
운영체제가 제공하는 기능은 다양하지만, 가장 핵심적인 서비스는 존재한다. (커널이 담당함)
ex. 자원에 접근하고 조작하는 기능, 프로그램이 올바르고 안전하게 실행되게 하는 기능..
운영체제에는 속하지만 커널에는 속하지 않는 기능?
- 유저 인터페이스(UI) GUI 혹은 커맨드라인 인터페이스는 사용자와 컴퓨터 간의 통로일 뿐 운영체제의 핵심 기능(커널)은 아님. (충격)
이중모드와 시스템 호출
유저가 실행하는 프로그램(메모장 등)은 자원(CPU, 메모리 등)에 직접 접근할 수 있을까? -> No 위험하다. 운영체제가 중간에서 해줌.
슈퍼바이저 플래그를 통해 커널모드인 경우 , 사용자 모드인 경우에 따라 명령어 실행 여부를 구분함.
그럼 언제 커널모드가 되는가?
운영체제의 핵심 서비스
1. 프로세스 관리
프로세스 == 메모리에 적재돼서 실행 중인 프로그램
수많은 프로세스들의 동시에 실행됨.(아주 빠르게 번갈아 가며 실행됨)
관리 방법 - 프로세스와 스레드, 프로세스 동기화, 교착상태 해결
2. 자원 접근 및 할당
CPU - CPU 스케쥴링( 어떤 프로세스를 먼저, 얼마나 오래 실행할까?)
메모리 - (페이징, 스와핑...) 어디에 적재? 전부 다 적재할 필요가 있을까? 메모리보다 큰 경우는?
입출력장치 - 인터럽트 서비스 루틴(운영체제의 커널 영역에 적재되어 있는 코드)
3. 파일 시스템 관리
관련된 정보들을 파일이라는 단위로 저장 장치에 보관함.
파일들을 묶어 폴더(디렉토리) 단위로 저장 장치에 보관함.
학습 출처: https://www.youtube.com/watch?v=bls_GjX-4U8&list=PLVsNizTWUw7FCS83JhC1vflK8OcLRG0Hl
'Computer Science > 운영체제' 카테고리의 다른 글
5. CPU 스케줄링 (0) | 2023.08.29 |
---|---|
4. 스레드 (0) | 2023.08.29 |
3. 프로세스 상태와 계층 구조 (0) | 2023.08.28 |
2. 프로세스 개요 (0) | 2023.08.27 |
0. 운영체제를 왜 공부해야 하는가 🤔 iOS (0) | 2023.07.02 |