Computer Science/OS

[OS] Stallings 저 Operating System Ch2. 운영체제의 목적 및 기능

TLdkt 2022. 9. 14. 07:47
728x90
반응형

🚀조선시대 똥컴과 시작한 운영체제 공부....

고작 2년 전에 산 것 같은데 어느새 죽어가는 나의 그램 17인치...

원래 CS과목 중 하나이기도 하지만 노트북이 아주 느리지 않았다면 굳이 궁금해하지 않았을 것 같다.

이왕 공부하게 된 것, 잘 정리해보자 싶어 시작한 Stallings 저 운영체제 내용 정리!

동일한 내용은 깃허브에 먼저 업데이트하고 있으니 가장 빨리 받아보고 싶다면 레파지토리 별⭐을 눌러주시길

https://github.com/Tldkt/-Stallings-Operating-System-summary

 

GitHub - Tldkt/-Stallings-Operating-System-summary: Stalling 저 운영체제 학습내용을 정리합니다.

Stalling 저 운영체제 학습내용을 정리합니다. Contribute to Tldkt/-Stallings-Operating-System-summary development by creating an account on GitHub.

github.com

 

참고로 앞부분은 컴퓨터 구조에 대한 설명이라 추후에 정리해보려 한다.

 

 

2.1 운영체제의 목적 및 기능

운영체제란?

  • 응용프로그램의 실행을 제어하는 프로그램
  • 응용-하드웨어 사이 인터페이스

운영체제의 목적

  • 편리성
  • 효율성
  • 발전성(효율적인 개발, 검사, 기능도입을 방해 없이 수용)

컴퓨터 시스템의 계층 구조와 관점

 

운영체제 위에 사용자의 응용 프로그램이 올라감

인스트럭션 셋에 기계어 코드가 들어가게 됨

CPU내에는 MMU라고 하여 Memory management unit이 있는데, 가짜 주소를 진짜 주소로 바꾸어주는 역할을 함

 

운영체제의 기능

  • 사용자관점에서 인터페이스 역할
  • 시스템 관점 자원관리자 역할

자원관리자로서의 운영체제

 
  • 일반 컴퓨터 소프트웨어와 동일하게 기능
  • 처리기에 의해 실행
  • 응용에게 제어를 양도, Context Switching을 통해 응용으로부터 제어 넘겨받음

커널

  • 주메모리에 상주하는 운영체제의 핵심
  • 자주 사용되는 기능 포함
  • Nucleaus라고도 부름

운영체제 발전의 용이성 배경

  • 하드웨어의 발전
  • 새로운 유형의 하드웨어
  • 버그 수정에 의해
  • 새로운 서비스 도입에 의해

2.2 운영체제의 발전

운영체제 발전단계

  • 순차처리(Serial Processing)
  • 단순일괄처리(Simple Batch System)
  • 멀티프로그래밍 일괄처리시스템
  • 시분할 시스템

JCL(Job Control Language)

  • 모니터에 명령어 제공을 위한 특수한 프로그래밍 언어
  • Resident Monitor

모니터가 필요로 하는 하드웨어의 기능

당시 모니터가 가졌던 핵심 기능이 지금까지 이어짐

  • 메모리 보호
  • 타이머
  • 특권 명령어(previlleged instruction)
  • 인터럽트

 

모니터의 동작 모드

  • 사용자 프로그램=사용자 모드에서
  • 모니터=시스템 모드, 커널 모드에서만 수행

단순 일괄처리의 비효율성

왜 단순 일괄처리는 비효율적인가?

  • I/O 처리 전에 명령어 대기해야 하므로

 

시스템 이용률(utilization)

 

멀티프로그래밍 일괄처리 시스템

  • Multiprogrammed Batch System
  • 여러 프로그램이 CPU번갈아 사용 but 순서대로 처리
  • 운영체제다운 기능 등장

예시로 보는 멀티프로그래밍

  • 입출력 대기 시간에 다른 프로그램을 수행
 
 

단일프로그래밍 일괄처리였다면?

 

남는 자리 아까워→우겨넣어. 견뎌.

 
 

멀티-일괄처리의 효과

 
  • CPU 효율이 올라감
  • 평균응답시간, 산출량 개선
  • but 그래도 가장 마지막에 있는 애는 마지막에 끝남

시분할(Time Sharing) 시스템

 
  • 현재의 운영체제 근본
  • 여러 개의 대화형(입출력 많은) 작업을 다루기 적합
  • 처리기 시간을 쪼개 공유
  • 터미널을 통해 동시에 시스템 접근→quantum time씩 각 사용자 프로그램 실행

Compatible Time Sharing System 예시

  • MIT 초기 시분할 시스템 예시
  • 가용공간을 어느정도 사용하면서 병행

 

멀티프로그래밍 vs 시분할 시스템

  • 일괄 처리
    •   마지막 요청이 늦게 처리되든 말든 상관X
  • 시분할 처리는 각 요청의 응답시간이 최소화되도록
    • 지나치게 오래 대기하는 요청이 없게끔
728x90
반응형