728x90
반응형
🚀조선시대 똥컴과 시작한 운영체제 공부....
고작 2년 전에 산 것 같은데 어느새 죽어가는 나의 그램 17인치...
원래 CS과목 중 하나이기도 하지만 노트북이 아주 느리지 않았다면 굳이 궁금해하지 않았을 것 같다.
이왕 공부하게 된 것, 잘 정리해보자 싶어 시작한 Stallings 저 운영체제 내용 정리!
동일한 내용은 깃허브에 먼저 업데이트하고 있으니 가장 빨리 받아보고 싶다면 레파지토리 별⭐을 눌러주시길
https://github.com/Tldkt/-Stallings-Operating-System-summary
참고로 앞부분은 컴퓨터 구조에 대한 설명이라 추후에 정리해보려 한다.
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
반응형