💡
- 운영체제가 무엇인지
- 개발자가 운영체제를 알아야 하는 이유
- 커널이 무엇인지
- 시스템 호출과 이중 모드
- 운영체제가 제공하는 핵심 서비스의 종류
1) 운영체제를 알아야 하는 이유
운영체제란
프로그램 실행에 필요한 요소: 시스템 자원 / 자원 (CPU, 메모리, 보조기억장치, 입출력장치 등)
실행할 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램: 운영체제
항상 컴퓨터가 부팅될 때 메모리 내 커널 영역이라는 공간에 따로 적재되어 실행
영역: 커널 영역 + 사용자 영역
→ 운영체제는 커널 영역에 적재되어 사용자 영역에 적재된 프로그램들에 자원 할당과 실행을 도움
운영체제의 역할
- 운영체제는 실행할 프로그램을 메모리에 적재, 더 이상 실행되지 않는 프로그램을 메모리에서 삭제하며 지속적으로 메모리 자원 관리
- 공정하게 여러 프로그램에 CPU 자원을 할당
- 응용 프로그램과 하드웨어 사이에서 응용 프로그램에 필요한 자원을 할당, 실행 관리
운영체제를 알아야 하는 이유
운영체제가 하드웨어를 조작하고 관리하는 기능 제공
하드웨어와 프로그램을 더 깊이 이해하여 문제의 원인 찾기 가능
2) 운영체제의 큰 그림
운영체제의 심장, 커널
운영체제의 핵심 서비스를 담당하는 부분: 커널
커널에 포함되지 않는 서비스: 사용자 인터페이스(그래픽 유저 인터페이스 GUI, 커맨드 라인 인터페이스 CLI)
이중 모드와 시스템 호출
운영체제는 응용 프로그램들이 자원에 접근하려 할 때 오직 자신을 통해서만 접근하도록 자원 보호 → 이중 모드로써 구현
이중 모드
CPU가 명령어를 실행하는 모드를 사용자 모드/커널 모드로 구분하는 방식
사용자 모드:
운영체제 서비스를 제공받을 수 없는 실행 모드. 일본적인 응용 프로그램의 실행방법. 자원에 접근 X.
커널 모드:
운영체제 서비스를 제공받을 수 있는 실행 모드. 자원에 접근하는 명령어를 비롯한 모든 명령어 실행 가능. 자원 접근 가능.
→ CPU가 사용자 모드/커널 모드로 실행 중인지 플래그 레지스터 속 슈퍼바이저 플래그에서 알 수 있음
시스템 호출(시스템 콜)
사용자 모드 실행 프로그램이 커널 모드로 전환되기 위하여 요청
소프트웨어적 인터럽트: 인터럽트를 발생시키는 특정 명령어에 의해 발생
일반적으로 응용 프로그램은 실행 과정에서 빈번하게 시스템 호출 발생시킴.
운영체제의 핵심 서비스
프로세스 관리, 자원 접근 및 할당, 파일 시스템 관리
프로세스 관리
다양한 프로세스를 관리/실행
여러 프로세스가 동시에 실행되는 환경 → 프로세스 동기화 필수, 교착상태 해결
자원 접근 및 할당
CPU
프로세스들에 공정하게 CPU 할당: CPU 스케줄링
메모리
새로운 프로세스가 적재될 때 어느 주소에 적재할지 결정
입출력장치
인터럽트 서비스 루틴 제공 → 입출력 작업
파일 시스템 관리
보조기억장치 속 데이터를 파일과 디렉터리로 관리
'스터디 > 운영체제' 카테고리의 다른 글
[인프런 CS 전공지식 스터디 3기_운영체제] 5. 데드락 (0) | 2025.03.16 |
---|---|
[인프런 CS 전공지식 스터디 3기_운영체제] 4. 프로세스 동기화 (0) | 2025.03.16 |
[인프런 CS 전공지식 스터디 3기_운영체제] 3. CPU스케줄링 (0) | 2025.03.11 |
[스터디] 인프런 CS 전공지식 스터디 3기_운영체제(1주차) (0) | 2025.03.09 |