📖
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

04. 프로세스 스케쥴링

배치 처리 시스템, 시분할 시스템, 멀티태스킹

  • 배치처리시스템 (batch processing System)

    • 자동으로 다음 응용프로그램이 이어서 실행 될 수 있도록 하는 시스템

    • 자료구조: queue 와 유사

    • 여러 프로그램을 순차적으로 실행시킬 수 있도록 하는 시스템

    • 단점

      • 어떤 프로그램은 실행 시간이 너무 많이 걸려서,

        다른 프로그램이 실행하는데 시간을 많이 기다려야 한다.

      • 응용프로그램1, 응용프로그램2를 동시에 실행시킬 수 없다.

        (동시에 여러 응용프로그램 실행X)

      • 여러 사용자가 동시에 하나의 컴퓨터를 쓸 수 없다.(다중 사용자 지원X)

        시분할 시스템/ 멀티프로그래밍이 나왔다.

  • 시분할 시스템 (Time Sharing System)

    • 다중 사용자 지원을 위해 컴퓨터 응답을 최소화 하는 시스템

    • 응용프로그램이 CPU를 점유하는 시간을 잘게 쪼게어 실행할 수 있도록 하는 시스템

  • 멀티 태스킹 (Multi Taskiing)

    • 단일 CPU에서 여러 응용프로그램이 동시에 실행되는 것처럼 보이도록 하는 시스템

    • 실제 멀티태스킹(테스트)

      • 10~20 ms 단위로도 실행 응용 프로그램이 바뀌더라.

      • 사용자에게는 동시에 실행되는 것 처럼 보이게 됨.

  • 멀티프로세싱

    • 여러 CPU에 하나의 프로그램을 병렬로 실행해서 실행속도를 극대화시키는 시스템(기법)

  • 멀티프로그래밍

    • 최대한 CPU를 (일정 시간 당) 많이 활용하도록 하는 시스템

      • 시간 대비 CPU활용도를 높이자.

      • 응용프로그램을 짧은 시간 안에 실행 완료 시킬 수 있음.

    • 응용프로그램은 온전히 CPU를 쓰기보다, 다른 작업을 중간에 필요로 하는 경우가 많다.

      • 응용프로그램이 실행되다가, 프린팅을 한다.

      • 용용프로그램이 실행되다가, 파일을 읽는다.

        • file 읽어오는 C코드 생각해보기

        • open()은 저장 매체에서 파일을 읽어 와야함.

        • CPU입장에서 저장 매체에 다녀오는 시간은 오래 걸림

        • 그 시간을 다른 응용프로그램을 실행하는 시간으로 사용하는 것!

    • 여러 프로그램이 메모리에 올라가 있음을 강조

  • 정리

    실제로는 시분할시스템, 멀티프로그래밍, 멀티 태스킹이 유사한 의미로 통용

  • 핵심

    • 여러 응용프로그램 실행을 가능토록 함.

    • 응용프로그램이 동시에 실행되는 것처럼 보이도록 함.

    • CPU를 쉬지 않고 응용프로그램을 실행토록 해서, 짧은 시간 안에 응용 프로그램이 실행 완료 될 수 있도록 함.

    • 컴퓨터 응답 시간도 짧게 해서, 다중 사용자 지원

Previous03. 운영체제 구조Next05. 스케쥴링 알고리즘

Last updated 4 years ago

Was this helpful?

💻