📖
Mini's Today I Learned
  • Today I Learned
  • 💻Computer Science
    • 🧱Computer Science
      • Computer Architecture
    • 🦕OperatingSystem
      • System Structure
      • 01. 운영체제 역할
      • 02. History로 이해하는 운영체제
      • 03. 운영체제 구조
      • 04. 프로세스 스케쥴링
      • 05. 스케쥴링 알고리즘
      • 06. 프로세스 상태와 스케쥴러
      • 07. 인터럽트
      • 08. 프로세스와 컨텍스트 스위칭
      • 09. 프로세스간 커뮤니케이션(IPC 기법)
      • 10. Thread(스레드)
      • 11. 가상메모리 (Virtual Memory System)
      • 12. 파일시스템 이해
      • 13. 부팅의 이해
      • 14. 가상머신(Virtual Machine)
  • 📈Database
    • MySQL CLI (Frequently used)
    • 1-Tier, 2Tier, 3Tier
    • Basic SQL
    • Built in function
    • Sub Query
    • View
    • Stored Program
    • index
    • Normalization(정규화)
    • Transaction
    • Transaction
  • 🌐 Network
    • 🔌 TCP&IP Basic
      • 01 TCP/IP 맛보기
      • 02 TCP/IP 개요
      • 03 통신 서비스와 프로토콜
      • 04 애플리케이션 계층
      • 05 트렌스포트 계층
      • 06 네트워크계층
      • 07 데이터 계층과 물리계층
      • 08 라우팅
      • 09 보안
      • 10 HTTP 프로토콜
    • 🐿️HTTP 완벽 가이드 요약
      • 1. HTTP: 웹의 기초
      • 2. URL 과 리소스
      • 3. HTTP Message
      • 4. Connection Management
      • 5. Overview of web server architectures
      • 6. Proxies
      • 7.Caching
      • 8. Integration Points: Gateways, Tunnels, and Relays
      • 9. Web Robots
      • 10. HTTP/2.0
      • 11. Client Identification and Cookies
      • 12. Basic Authentication
      • 13. Digest Authentication
      • 14. Secure HTTP
      • 15. Entities and Encodings
      • 16. Internationalization
      • 17. Content Negotiation and Transcoding
      • 18. Web Hosting
  • 🏴Language
    • ☕JAVA
      • Comparable vs Comparator
  • 🛠️ Framework
  • 🧩Design Pattern
    • 객체 지향 설계 원칙 (SOLID)
    • Design Pattern 개요
    • Template method
    • Singleton
  • 🐥FrontEnd
    • HTML&CSS
      • 01 Intro
      • 02 HTML Basic
      • 03 Content Section
      • 04 Block and Inline Elements
      • 05 Text Contents
      • 06 Inline Elements
      • 07 Multi Media
      • 08 Table&Form&etc
      • 09 Global Attribute & etc
      • 10 css basic
      • 11 css config
      • 12 css unit
      • 13 Box Model
      • 14 Font & Text
      • 15 Float(띄움) & Position
      • 16 Background
      • 17 Transitions & Transforms
      • 18 Animation & Multi Columns(다단)
      • 19 Flex
      • 20 Grid
    • Sass(SCSS)
    • TypeScript
    • Webpack Introduction
      • 웹팩의 기본 구조
      • CommonJS
      • ESM
      • WebpackConfig
        • 1. Handlebars
        • 2. Caching
        • 3. Minification & Mangling
        • 4. Mode(Development mode & Production Mode)
        • 5. 이미지 파일 모듈로 다루어보기(file-loader)
        • 6. 이미지 파일 모듈로 다루어보기(url-loader)
        • 7. SASS Loader
        • 8. Post CSS
        • 9. BLOWSERS LIST
        • 10. Stylelint
        • 11. Babel
      • Webpack-Practice
    • ETC
      • GIT
      • MarkDown
Powered by GitBook
On this page

Was this helpful?

  1. Computer Science
  2. 🦕OperatingSystem

05. 스케쥴링 알고리즘

  • 프로세스란?

    • 메모리에 올려져서 실행 중인 프로그램

    • 코드 이미지(바이너리): 실행 파일, 예: ELF format

      작업, task, job이라는 용어와 혼용 됨

    • 응용프로그램 != 프로세스

      • 응용프로그램은 여러 개의 프로세스로 이루어질 수 있음.

      • 하나의 응용프로그램은 여러 개의 프로세스가 상호작용 하면서 실행될 수 있음.

        간단한 C/C++ 프로그램을 만든다면 => 하나의 프로세스 여러 프로그램을 만들어서 서로 통신하면서 프로그램 작성상(IPC 기법)

  • 스케쥴러와 프로세스관계

    • 스케쥴러 : 프로세스 실행을 관리

  • 스케쥴링 알고리즘

    어느 순서대로 프로세스를 실행시킬까?

    • 목표

      • 시분할 시스템 예: 프로세스 응답 시간을 가능한 짧게

      • 멀티 프로그래밍 예: CPU 활용도를 최대로 높혀서 프로세스를 빨리 실행

  • 기본 스케쥴링 알고리즘

    • FIFO

      • 프로세스가 저장 매체를 읽는다는지, 프린팅을 한다든지 하는 작업 없이 쭉 CPU를 처음부터 끝까지 사용한다.

      • 가장 간단한 스케쥴러

      • 배치 처리 시스템과 유사

      • FCFS(First Come First Served) 스케쥴러

    • 최단작업우선(SJF: Shortest Job First) 스케쥴러

      • 가장 프로세스 실행 시간이 짧은 프로세스부터 먼저 실행시키는 알고리즘

      • 장점: 응답 시간이 짧은 프로세스부터 실행되어 FIFO보다는 응답 시간이 짧을 수 있음. 줄줄이 지 되는 경우는 발생하지 않는다.

      • 단점: 단, 실행 시간을 알아야 한다.

    • 우선순위 기반(Priority-Based) 스케쥴러

      • 프로세스에 우선순위를 메겨둠.

      • 정적 우선순위

        • 프로세스마다, 우선순위를 미리 지정

        • (웹을 1순위로 해 놓는 다는지 그런)

      • 동적 우선순위

        • 스케쥴러가 상황에 따라 우선순위를 동적으로 변경

    • Round Robin 스케쥴러

      • 시분할 시스템을 위해 설계된 선점형 스케쥴링의 하나.

      • 시간 단위로 CPU(process) 할당

      • 단위 시간 안에 해당 프로세스가 모두 실행되지 않았을 경우, 다시 준비 queue로 돌아가서, CPU 할당 받을 준비를 다시 함.

  • 잠깐!(SJF에 참조)

    • RealTime OS(RTOS): 응용프로그램 성능 보장을 목표로 하는 OS

      • 정확하게 프로그램 시작, 완료 시간을 보장.

      • Hardware RTOS, Software RTOS

      • 시간에 민감한 컴퓨팅 환경에 적합

    • General Purpose OS(GPOS)

      • 프로세스 실행 시간에 매우 민감하진 않고, 일반적인 목적으로 사용되는OS

      • 예: Windows, Linux등 (일반적인 OS)

Previous04. 프로세스 스케쥴링Next06. 프로세스 상태와 스케쥴러

Last updated 4 years ago

Was this helpful?

💻