[혼공컴운] WIL_#4

Oigu·2024년 1월 28일
0
post-thumbnail

Ch. 9~11

운영체제


  • 컴퓨터 부품들을 관리하고 프로그램을 작동시키는 특별한 프로그램
  • 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 프로그램
  • 컴퓨터가 부팅될 때 메모리 내 커널 영역에 적재되는 프로그램
    ➡️ 운영체제가 담기는 곳은 커널 영역, 사용자가 쓰는 응용 프로그램이 담기는 곳은 사용자 영역

사용자가 사용하는 응용 프로그램들을 관리 ➡️ like 정부

⭐ 운영체제를 알아야 하는 이유

하드웨어의 상태, 문제 등 알 수 있게 해 줌 ➡️ 문제 해결의 실마리를 찾을 수 있음



✔️ 커널

운영체제에서 전화, 인터넷, 문자 등 핵심적인 기능을 담당하는 부분

✔️ 커널에 포함되지 않는 서비스

사용자 인터페이스 (UI)

  • 그래픽 유저 인터페이스 (GLI): 그래픽을 기반으로 컴퓨터와 상호작용
  • 커맨드 라인 인터페이스(CLI): 명령어를 기반으로 컴퓨터와 상호작용


✔️ 이중 모드

  • CPU가 사용자 모드, 커널 모드로 구분하는 방식
  • 사용자 모드: 운영체제 서비스를 제공받을 수 없는 실행 모드
  • 커널 모드: 운영체제 서비스를 제공받을 수 있는 실행 모드

사용자 모드는 시스템 호출을 통해 커널 모드로 전환 가능
시스템 호출: 일종의 인터럽트
인터럽트: CPU의 작업을 방해하는 신호



✔️ 운영체제의 서비스

  • 프로세스 관리
  • 자원 접근 및 할당(CPU, 메모리, 입출력장치)
  • 파일 시스템 관리




프로세스와 스레드


✔️ 프로세스 제어 블록(PCB)

  • 해당 프로세스를 식별하기 위해 꼭 필요한 정보들이 저장된 곳
  • 프로세스 생성 시에 만들어지고 실행이 끝나면 폐기

PCB에 담기는 정보

  • 프로세스 ID
  • 레지스터 값
  • 프로세스 상태
  • CPU 스케줄링 정보
  • 메모리 관리 정보
  • 사용한 파일과 입출력장치 목록

운영체제는 커널 영역에 적재된 PCB를 보고 프로세스 관리



✔️ 문맥 교환

문맥: 하나의 프로세스 수행을 재개하기 위해 기억해야 할 정보
문맥 교환: 기존 프로세스의 문맥을 PCB에 백업하고 새로운 프로세스에서 복구해 실행하는 것

여러 프로세스가 끊임없이 빠르게 번갈아 가며 실행되는 원리
프로세스들이 동시에 실행되는 것처럼 느껴짐



✔️ 프로세스 메모리 영역

커널 영역, 사용자 영역 중 사용자 영역에 저장되는 프로세스

  • 코드 영역
  • 데이터 영역
  • 힙 영역
  • 스택 영역

으로 나뉘어 배치



프로세스 상태

생성 준비 실행 대기 종료
작업 관리자세부 정보 탭에서 상태 확인 가능

[참고] IT위키 - 프로세스 상태



멀티 프로세스 vs 멀티 스레드




CPU 스케줄링


  • 선입 선처리 스케줄링
  • 최단 작업 우선 스케줄링
  • 라운드 로빈 스케줄링
  • 우선순위 스케줄링
  • 다단계 피드백 큐 스케줄링



🚶🏻 기본 미션


p.304

  1. 프로세스 상태를 보여주는 프로세스 상태 다이어그램



🏃🏻 선택 미션


11-2 CPU 스케줄링 알고리즘

준비 큐에 A,B,C,D 순으로 삽입되었다고 가정했을 때, 선입 선처리 스케줄링 알고리즘을 적용하면 어떤 프로세스 순서대로 CPU를 할당받는지 풀어보기

<선입 선처리 스케줄링>

  • First Come First Served Scheduling
  • 비선점 스케줄링 방식
  • 긴 시간을 기다려야 하는 호위효과의 부작용이 있음

준비 큐에 삽입된 A, B, C, D 순서대로 CPU를 요청한 프로세스부터 CPU를 할당.

만약 B의 CPU 사용 시간이 길다면 C와 D는 B가 끝날 때까지 기다려야해서 시간 면에서 비효율적임,,

0개의 댓글