(참고: Fastcampus 강의, 강민철의 인공지능 시대 필수 컴퓨터 공학 지식)
1. OT
Contents
- 운영체제의 역할
- 운영체제의 핵심부: 커널
- 이중 모드 & 시스템 콜
- 운영체제의 서비스의 종류
(1) 운영체제의 역할
(컴퓨터 구조 파트에서 배운) 다양한 “컴퓨터 부품 (=리소스)”들은, “누가” 움직이게 만들까?
\(\rightarrow\) “운영체제”다!
즉, 운영체제는 자원을 관리 & 할당하는 “프로그램”이다!
대표적인 운영체제
- Windows
- macOS
- Linux
- Android
- iOS
운영체제가 하는 역할 ex)
- “메모리” 할당 & 반환
- “CPU” 할당 & 반환
- “Disk” 할당 & 반환
(2) 운영체제의 핵심부: 커널
커널 = 하드웨어와 소프트웨어를 연결해주는 중추
커널의 역할
- 프로세스 관리
- 여러 프로그램(프로세스)이 동시에 실행될 수 있도록 CPU 시간 분배
- 문맥 전환(context switch), 스케줄링 등 수행
- 메모리 관리
- 각 프로그램이 사용할 메모리 공간을 할당하고 보호
- 가상 메모리(Virtual Memory), 페이지 교체 등 포함
- 파일 시스템 관리
- 저장장치(HDD, SSD 등)에 데이터를 읽고 쓰는 역할
- 디렉토리 구조, 권한 관리 등 포함
- 입출력(I/O) 제어
- 키보드, 마우스, 네트워크 등 장치와의 통신을 중재
- 드라이버를 통해 다양한 하드웨어 제어
- 시스템 호출 인터페이스 제공
- 사용자 프로그램이 OS 기능을 사용할 수 있게 API 제공
- 예: read(), write(), fork() 등
(3) 이중 모드 & 시스템 콜
이중 모드
- “커널” 모드: 운영체제 서비스를 제공 받을 수 “있는” 모드 ( = 입출력 가능 )
- 커널영역의 코드를 실행 가능 O
- 즉, 응용 프로그램 (사용자 프로그램)의 자원 임의 접근 가능 O
- “사용자” 모드: 운영체제 서비스를 제공 받을 수 “없는” 모드 ( = 입출력 불가능 )
- 커널영역의 코드를 실행 가능 X
- 즉, 응용 프로그램 (사용자 프로그램)의 자원 임의 접근 가능 X
보호 링 (protection ring)
- 여러 단계로 나눈 권한
시스템 콜
- 운영체제 서비스를 제공받기 위해, “커널 모드로 전환”하는 콜
- Software 인터럽트
(4) 운영체제의 서비스의 종류
- 프로세스 관리
- 자원 관리 접근 및 할당
- 파일 시스템 관리
(feat. ChatGPT)
a) 프로세스 관리
비유: 마트 계산대에서 손님을 순서대로 처리하는 직원
예시:
- 여러 개의 프로그램(크롬, 메모장, 유튜브 등)을 동시에 켰을 때, 운영체제는 CPU가 각각에게 적절히 시간을 나눠줌
→ “이제 크롬 좀 계산해줄게”, “다음은 유튜브 차례야” 처럼 교대로 처리
b) 자원 접근 및 할당
비유: 도서관에서 책상(자원)을 예약하는 시스템
(메모리, I/O 장치, 파일, 프린터 등의 자원을 프로세스에 할당하거나 회수)
예시:
- 두 개의 앱이 동시에 프린터를 사용하려고 할 때, 운영체제는 누가 먼저 사용할지, 그리고 프린터가 끝나면 다른 앱에 넘길지 등을 관리
→ “지금은 워드가 프린터 쓰는 중이니까 엑셀은 잠시 대기!”
c) 파일 시스템 관리
비유: 서류를 폴더에 정리하는 사무실 직원
예시:
사진을 저장하면, 운영체제는 하드디스크 어딘가에 파일을 저장하고, 나중에 찾기 쉽도록 이름과 경로를 기억해둠
→ “너의 ‘2023 여행 사진.jpg’는 ‘내 문서 > 사진 > 여행’ 폴더에 있어!”
🎯 한 줄 요약
- 프로세스 관리는 프로그램 실행 순서를 조절
- 자원 관리는 제한된 자원을 공정하게 분배
- 파일 시스템은 데이터를 정리하고 보관하는 역할입니다
더 궁금한 서비스 영역 (예: 메모리 관리, 보안 등) 있으면 알려줘!