반응형
목차
Chapter 09. 운영체제 시작하기
- 9-1. 운영체제를 알아야 하는 이유
- 9-2. 운영체제의 큰 그림
운영체제...?
- Windows, Android, MacOS, iOS, Linux, ...
- 모든 프로그램은 실행을 위해 컴퓨터의 네 가지 핵심 부품을 포함해서 (시스템) 자원, Resource 를 필요로 한다.
- 운영체제는 실행할 프로그램에 자원을 할당하고 올바르게 실행되도록 돕는 특별한 프로그램
- 운영체제도 프로그램이기 때문에 메모리에 적재되는데, 커널 (Kernel) 영역에 들어감
- 워드 프로세서, 인터넷 브라우저, 메모장 등과 같은 일반적인 응용프로그램 (Application Software) 은 사용자 (User) 영역에 적재
- 하드웨어 등 컴퓨터의 자원을 응용 프로그램에서 어떻게 효율적으로 관리하고 사용할 수 있는지...
운영체제가 없다면? 운영체제가 없이 응용프로그램을 개발한다면?
- 하드웨어를 직접 접근하는 부분을 구현해야 함
- 프로그램을 메모리에 적재하는 코드, CPU 가 어떻게 동작할지, 모니터에는 어떻게 출력할 것인지 등 모든 것을 직접 개발해야 함.. (복잡)
운영체제를 왜 알아야 할까?
- 운영체제는 사용자를 위한 프로그램이 아니다
- 운영체제는 프로그램을 위한 프로그램이다!!
- 개발한 프로그램에서 문제가 발생한다면 가장 먼저 운영체제에게 도움을 받아야 함! (e.g. 오류 메시지)
keyword:
- 커널
- 운영체제의 서비스 종류
- 시스템 콜과 이중 모드
커널 Kernel, 운영체제의 심장
- 운영체제가 제공하는 기능은 다양하지만 가장 핵심적인 서비스가 존재하며 이를 커널이 담당
- 자원을 접근하고 조작하는 기능, 프로그램이 올바르고 안전하게 실행되게 하는 기능 등
- 커널에 속하지 않는 기능? e.g. UI (User Interface)
이중모드와 시스템 호출
- 사용자가 실행하는 프로그램은 자원에 직접 접근할 수 있을까? NO!
- 여러 응용 프로그램 간 충돌이 발생하거나 잘못된 행동을 할 경우 다른 프로그램에 영향을 줄 수 있음
- 응용 프로그램들은 운영체제에게 자원의 접근을 요청함
이중 모드
- CPU 가 명령어를 실행하는 모드는 사용자 모드(0)와 커널 모드(1)로 구분
- 플래그 레지스터의 슈퍼바이저 플래그 값으로 구분
사용자 모드, User Mode
- 운영체제 서비스를 제공받을 수 없는 실행 모드
- 커널 영역의 코드를 실행할 수 없음
- 자원 접근 불가
커널 모드, Kernel Mode
- 운영체제의 서비스를 제공받을 수 있는 실행 모드
- 자원 접근을 비롯한 모든 명령어 실행 가능
- 일종의 소프트웨어 인터럽트인 시스템 호출 (system call) 을 이용해서 전환
시스템 호출이 실행되는 방식
- 사용자 영역의 응용 프로그램에서 시스템 호출
- 커널 영역의 운영체제에서 운영체제 코드 실행
- 사용자 역영의 응용프로그램으로 시스템 호출 복귀
운영체제의 핵심 서비스
1. 프로세스 관리
- 프로세스는 실행 중인 프로그램으로 수많은 프로세스들이 동시에 실행
- 동시다발적으로 실행되는 프로그램들이 생성, 실행, 삭제되는 것을 일목요연하게 관리
- 어떻게 관리할 수 있을까? 프로세스와 스레드, 프로세스 동기화, 교착상태 해결 등
2. 자원 접근 및 할당
- CPU 스케줄링 : 어떤 프로세스를 먼저, 얼마나 오래 실행할까?
- 메모리 : 메모리를 어떻게 효율적으로 할당하고 해제할 수 있을까? e.g. 페이징, 스와핑 등
- 입출력장치 : 인터럽스 서비스 루틴
3. 파일 시스템 관리
- 관련된 정보를 파일이라는 단위로 저장 장치에 보관
- 파일들을 묶어 폴더 (디렉토리) 단위로 저장 장치에 보관
끝.
반응형
'IT' 카테고리의 다른 글
혼공단 5주차 (1) 프로세스 동기화 (책 챕터12, 유투브 33강~34강) (0) | 2023.02.12 |
---|---|
혼공단 4주차 (2) 프로세스와 스레드 (책 챕터10, 유투브 26강~28강) (0) | 2023.02.07 |
혼공단 3주차 정리: 메모리, 보조기억장치, 입출력장치 그리고 운영체제 시작 (0) | 2023.01.24 |
[북리뷰] 『혼자 공부하는 데이터 분석 with 파이썬』1:1 과외하듯 배우는 데이터 분석 자습서 (한빛미디어) (0) | 2023.01.24 |
혼공단 2주차 정리: CPU 작동 원리와 성능 향상 기법 #혼공컴운 #혼자 공부하는 컴퓨터 구조+운영체제 (0) | 2023.01.15 |