(참고: Fastcampus 강의, 강민철의 인공지능 시대 필수 컴퓨터 공학 지식)

1. OT

Contents

  1. 운영체제의 역할
  2. 운영체제의 핵심부: 커널
  3. 이중 모드 & 시스템 콜
  4. 운영체제의 서비스의 종류


(1) 운영체제의 역할

(컴퓨터 구조 파트에서 배운) 다양한 “컴퓨터 부품 (=리소스)”들은, “누가” 움직이게 만들까?

\(\rightarrow\) “운영체제”다!

즉, 운영체제는 자원을 관리 & 할당하는 “프로그램”이다!


대표적인 운영체제

  • Windows
  • macOS
  • Linux
  • Android
  • iOS


운영체제가 하는 역할 ex)

  • “메모리” 할당 & 반환
  • “CPU” 할당 & 반환
  • “Disk” 할당 & 반환


figure2

figure2


(2) 운영체제의 핵심부: 커널

figure2

커널 = 하드웨어와 소프트웨어를 연결해주는 중추


커널의 역할

  1. 프로세스 관리
    • 여러 프로그램(프로세스)이 동시에 실행될 수 있도록 CPU 시간 분배
    • 문맥 전환(context switch), 스케줄링 등 수행
  2. 메모리 관리
    • 각 프로그램이 사용할 메모리 공간을 할당하고 보호
    • 가상 메모리(Virtual Memory), 페이지 교체 등 포함
  3. 파일 시스템 관리
    • 저장장치(HDD, SSD 등)에 데이터를 읽고 쓰는 역할
    • 디렉토리 구조, 권한 관리 등 포함
  4. 입출력(I/O) 제어
    • 키보드, 마우스, 네트워크 등 장치와의 통신을 중재
    • 드라이버를 통해 다양한 하드웨어 제어
  5. 시스템 호출 인터페이스 제공
    • 사용자 프로그램이 OS 기능을 사용할 수 있게 API 제공
    • 예: read(), write(), fork() 등


(3) 이중 모드 & 시스템 콜

이중 모드

  • “커널” 모드: 운영체제 서비스를 제공 받을 수 “있는” 모드 ( = 입출력 가능 )
    • 커널영역의 코드를 실행 가능 O
    • 즉, 응용 프로그램 (사용자 프로그램)의 자원 임의 접근 가능 O
  • “사용자” 모드: 운영체제 서비스를 제공 받을 수 “없는” 모드 ( = 입출력 불가능 )
    • 커널영역의 코드를 실행 가능 X
    • 즉, 응용 프로그램 (사용자 프로그램)의 자원 임의 접근 가능 X


보호 링 (protection ring)

  • 여러 단계로 나눈 권한

figure2


시스템 콜

  • 운영체제 서비스를 제공받기 위해, “커널 모드로 전환”하는 콜
  • Software 인터럽트

figure2



(4) 운영체제의 서비스의 종류

  • 프로세스 관리
  • 자원 관리 접근 및 할당
  • 파일 시스템 관리


(feat. ChatGPT)

a) 프로세스 관리

비유: 마트 계산대에서 손님을 순서대로 처리하는 직원

예시:

  • 여러 개의 프로그램(크롬, 메모장, 유튜브 등)을 동시에 켰을 때, 운영체제는 CPU가 각각에게 적절히 시간을 나눠줌

“이제 크롬 좀 계산해줄게”, “다음은 유튜브 차례야” 처럼 교대로 처리


b) 자원 접근 및 할당

비유: 도서관에서 책상(자원)을 예약하는 시스템

(메모리, I/O 장치, 파일, 프린터 등의 자원을 프로세스에 할당하거나 회수)

예시:

  • 두 개의 앱이 동시에 프린터를 사용하려고 할 때, 운영체제는 누가 먼저 사용할지, 그리고 프린터가 끝나면 다른 앱에 넘길지 등을 관리

→ “지금은 워드가 프린터 쓰는 중이니까 엑셀은 잠시 대기!”


c) 파일 시스템 관리

비유: 서류를 폴더에 정리하는 사무실 직원

예시:

사진을 저장하면, 운영체제는 하드디스크 어딘가에 파일을 저장하고, 나중에 찾기 쉽도록 이름과 경로를 기억해둠

→ “너의 ‘2023 여행 사진.jpg’는 ‘내 문서 > 사진 > 여행’ 폴더에 있어!”

🎯 한 줄 요약

  • 프로세스 관리는 프로그램 실행 순서를 조절
  • 자원 관리는 제한된 자원을 공정하게 분배
  • 파일 시스템은 데이터를 정리하고 보관하는 역할입니다

더 궁금한 서비스 영역 (예: 메모리 관리, 보안 등) 있으면 알려줘!

Categories: ,

Updated: