inblog logo
|
오니의 개발 블로그
    CS

    CS 정리본 - 운영체제/프로세스/스레드/Context Switch

    기술면접 대비 요약본 - CS
    오니's avatar
    오니
    Jun 15, 2024
    CS 정리본 - 운영체제/프로세스/스레드/Context Switch
    Contents
    운영체제커널과 모드시스템 콜프로세스프로세스 구조PCBIPC좀비 / 고아 프로세스프로세스 상태도CPU 스케쥴링스레드Context Switch프로세스의 Context Switch스레드의 Context Switch비교동시성과 병렬성동시성병렬성멀티 프로세스멀티 스레드

    운영체제

    • 사용자가 컴퓨터 자원을 사용할 수 있도록 환경을 제공해주는 체제

    커널과 모드

    커널

    • 컴퓨터 하드웨어과 자원 등 중요한 것들을 관리하는 역할

    사용자 모드

    • 커널에 접근할 수 ❌ 모드

    커널 모드

    • 커널에 접근할 수 🅾️ 모드

    시스템 콜

    • 사용자 모드에서 컴퓨터 자원을 이용하기 위한 요청

    프로세스

    • 운영체제로 자원을 할당 받은 작업 단위

    프로세스 구조

    notion image
    • 코드 : 사용자가 작성한 코드
    • 데이터
      • BSS (Block Stated Symbol): 초기화 되지 않은 전역 변수
      • Data: 초기화가 된 전역변수
    • 힙: 런타임시에 결정 / 사용자에 의해 동적할당이 이뤄짐
    • 스택: 컴파일 시간에 결정 / 지역변수, return 값 등이 저장 됨

    PCB

    • Process Control Block
    • 프로세스를 제어하기 위해 프로세스 정보 저장
    • 아래와 같은 값들이 저장 됨
      • PC(Program Counter / 명령어 주소 값)
      • PID
      • Stack Pointer 등

    IPC

    Inter Process Communication
    • 프로세스 간의 데이터 전달 방식이다.
        1. 공유 메모리
        1. 소켓
        1. 파이프
        1. 메세지 큐

    좀비 / 고아 프로세스

    좀비 프로세스

    • 부모가 자식 종료 회수를 안한 경우

    고아 프로세스

    • 부모가 먼저 종료된 경우 (root 프로세스가 자원을 나중에 회수 한다)

    프로세스 상태도

    notion image

    CPU 스케쥴링

    • 어떤 프로세스를 다음 작업에 올릴 것인지 결정하는 알고리즘
    1. 장기 (생성 → 준비)
        • 준비 큐에 어떤 프로세스를 오릴 것인가?
    1. 중기 (중단 ↔ 준비/대기)
        • 어떤 프로세스를 중단 설정/해제 시킬 것인가?
        • 준비→중단 되었다면 반드시 중단→준비 로 돌아간다. 대기도 마찬가지
    1. 단기 (준비 ↔ 실행)
        • 어떤 프로세스를 실행시키고 중단시킬 것인가?
        요약
        notion image
        • 비선점형(OS가 제어권을 강제로 회수하지 않는다)
          • FCFS (First Come First Served)
          • SJF (Shortest Job First)
        • 선점형(OS가 제어권을 강제로 회수한다)
          • R.R (Round-Robin)
          • SRTF (Shortest Remain Time First)
          • 멀티 레벨 스케쥴링

    스레드

    • 프로세스 위에서 작동하면서 작업 흐름의 단위

    Context Switch

    프로세스의 Context Switch

    • 코어 위의 프로세스 전체를 교체하는 작업
    • PCB에 진행 중인 프로세스를 save / 진행 할 프로세스의 PCB를 load 한다.

    스레드의 Context Switch

    • Stack을 교체하는 작업

    비교

    • 스레드에 비해 프로세스 Context Switch는 교체해야 할 save/load 비용이 크다.
    → 즉, 오버헤드 비용이 크다.

    동시성과 병렬성

    동시성

    • 하나의 코어에서 여러 작업을 번갈아 작업

    병렬성

    • 물리적인 시간으로 동시에 여러 코어에서 작업하는 것

    멀티 프로세스

    • 하나의 프로그램이 여러 프로세스로 구성하는 것

    멀티 스레드

    • 여러 스레드를 생성해 각자 다른 작업을 수행시키는 것
    • 단점: 하나의 스레드가 멈춰 버리면 다른 스레드에도 영향을 준다.
     

    +) 멀티 태스킹

    • 하나의 코어가 여러 프로세스를 번갈아 작업을 수행하는 것

    +) 멀티 프로세싱

    • 여래 개의 코어에서 여러 프로세스가 병렬적으로 수행되는 것
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    Share article
    Contents
    운영체제커널과 모드시스템 콜프로세스프로세스 구조PCBIPC좀비 / 고아 프로세스프로세스 상태도CPU 스케쥴링스레드Context Switch프로세스의 Context Switch스레드의 Context Switch비교동시성과 병렬성동시성병렬성멀티 프로세스멀티 스레드

    오니의 개발 블로그

    RSS·Powered by Inblog