2024년 10월 17일
출처: infrean
<aside>
📖 [LIST]
</aside>
1강
1-1. 컴퓨터 구조를 알아야 하는 이유
1-2. 컴퓨터 구조의 큰그림
1-3. 컴퓨터 구조를 알아야 하는 이유
운영체제
현존하는 프로그램 중 규모가 가장 큰 프로그램 중 하나, 제공하는 기능은 다양하다
But 가장 핵심적인 서비스는 존재한다.
자원에 접근하고 조작하는 기능
프로그램이 올바르고 안전하게 실행되게 하는 기능
- 커널(Kernel) : 운영체제의 핵심 서비스를 담당
- 운영체제에는 속하는데 커널에는 속하지 않는 기능 → UI(유저 인터페이스) - 사용자와 컴퓨터 간의 통로일 뿐 운영체제의 핵심 기능(커널)은 아
- 시스템 콜과 이중 모드
- 자원에 직접 접근은 위험하다.
- 운영체제는 응용 프로그램들이 자원에 접근하려할 때 오직 자신을 통해서만 접근하도록 하여 자원을 보호한다.
- 응용 프로그램이 자원에 접근하려면 운영체제에 도움을 요청(=운영체제의 코드를 실행)해야
- 응용 프로그램이 하드 디스크에 접근할 때
- 이중 모드 : CPU가 명령어를 실행하는 모드를 크게 사용자모드와 커널모드로 구분하는 방식
- 사용자 모드
- 운영체제 서비스를 제공받을 수 없는 실행 모드
- 커널 영역의 코드를 실행할 수 없는 실행 모드
- 자원 접근 불가
- 커널 모드
- 운영체제의 서비스를 제공받을 수 있는 실행 모드
- 자원 접근을 비롯한 모든 명령어 실행 가능
- 시스템 호출
- 커널 모드로 전환하여 실행하기 위해 호출
- 일종의 소프트웨어 인터럽트
- 시스템 호출이 처리되는 방식은 하드웨어 인터럽트 처리 방식과 유사
- 시스템 호출
- 운영체제 코드 실행
- 시스템 호출 복귀
- 빈번하게 시스템 호출을 실행한다.
- 운영체제의 핵심 서비스
- 프로세스 관리
- 프로세스 = 실행 중인 프로그램
- 수많은 프로세스들이 동시에 실행 → 아주 빠르게 동시에 실행 중이다
- 동시다발적으로 생성/실행/삭제되는 다양한 프로세스를 일목요연하게 관리
- 프로세스와 스레드, 프로세스 동기화, 교착상태 해결
- 자원 접근 및 할당
- CPU(CPU 스케줄링: 어떤 프로세스를 먼저, 얼마나 오래 실행할까?)
- 메모리(페이징, 스와핑, …)
- 입출력장치
- 파일 시스템 관리
- 관련된 정보를 파일이라는 단위로 저장 장치에 보관
- 파일들을 묶어 폴더(디렉터리) 단위로 저장 장치에 보