TIL::Today I Learn

[혼공컴운] '혼자 공부하는 컴퓨터구조 + 운영체제' 스터디 4주차

madylin 2024. 7. 28. 22:40
반응형

운영체제의 역할과 기능

운영체제는 컴퓨터 시스템에서 실행할 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 특별한 소프트웨어이다. 운영체제와의 상호작용을 통해 하드웨어와 소프트웨어의 동작을 이해하고 문제 해결의 실마리를 찾을 수 있다.

커널과 이중 모드

커널은 운영체제의 핵심 기능을 담당하는 부분이다. 이중 모드는 CPU가 명령어를 실행하는 방식을 두 가지 모드, 즉 커널 모드와 사용자 모드로 구분한다. 시스템 호출은 운영체제의 서비스를 이용하기 위해 사용자 모드에서 커널 모드로 전환하는 방법이다. 대표적인 운영체제 서비스에는 프로세스 관리, 자원 접근 및 할당, 파일 시스템 관리 등이 있다.

프로세스와 프로세스 관리

프로세스는 실행 중인 프로그램을 의미한다. 프로세스는 포그라운드 프로세스와 백그라운드 프로세스로 나눌 수 있다. 운영체제는 프로세스 제어 블록(PCB)을 통해 여러 프로세스를 관리한다. 프로세스 간의 실행을 전환하는 것을 문맥 교환이라고 하며, 프로세스의 메모리 영역은 크게 코드 영역, 데이터 영역, 스택 영역, 힙 영역으로 구분된다.

프로세스 상태와 생성

프로세스는 생성, 준비, 실행, 대기, 종료의 다섯 가지 상태를 가진다. 한 프로세스가 다른 프로세스를 생성하면, 생성된 프로세스를 자식 프로세스, 생성한 프로세스를 부모 프로세스라고 부른다. 많은 운영체제는 프로세스 계층 구조를 통해 프로세스를 관리한다.

스레드와 멀티스레딩

스레드는 프로세스 내의 실행 흐름 단위이다. 여러 프로세스를 동시에 실행하는 것을 멀티프로세싱이라고 하며, 하나의 프로세스 내에서 여러 스레드를 동시에 실행하는 것을 멀티스레딩이라고 한다.

CPU 스케줄링

CPU 스케줄링은 공정하고 합리적으로 CPU 자원을 배분하는 방법을 의미한다. 프로세스는 우선순위를 가지고 있으며, 이는 PCB에 명시된다. 운영체제는 효율적인 스케줄링을 위해 준비 큐와 대기 큐를 사용한다. 준비 큐는 CPU 할당을 기다리는 프로세스들을 위한 큐이며, 대기 큐는 입출력 장치를 기다리는 프로세스들을 위한 큐이다.

스케줄링 알고리즘

운영체제는 여러 가지 스케줄링 알고리즘을 사용하여 CPU를 할당한다.

  • 선입 선처리 스케줄링: 준비 큐에 삽입된 순서대로 CPU를 할당한다.
  • 최단 작업 우선 스케줄링: CPU 사용 시간이 가장 짧은 프로세스에 CPU를 할당한다.
  • 라운드 로빈 스케줄링: 정해진 시간 동안 각 프로세스에 순서대로 CPU를 할당한다.
  • 우선순위 스케줄링: 가장 높은 우선순위를 가진 프로세스에 CPU를 할당한다.
  • 다단계 피드백 큐 스케줄링: 프로세스들이 큐 사이를 이동할 수 있는 다단계 큐 구조를 사용한다.

 

기본 숙제

1. p. 304의 확인 문제 1번

다음은 프로세스 상태를 보여주는 프로세스 상태 다이어그램입니다. 1번부터 5번까지 올바른 상태를 적어 보세요.

  • 1 : 생성 상태
  • 2 : 준비 상태
  • 3 : 실행 상태
  • 4 : 종료 상태
  • 5 : 대기 상태
반응형