[개발 정리]/[OS]
Introduction to Operating Systems
hskimim
2024. 11. 19. 00:06
kocw 강의 : 이화여자대학교 반효경 교수님의 운영 체제 강의, 1강 Introduction to Operating Systems
OS
os 는 hw 바로 위에 있는 sw, 다른 모든 sw를 hw 와 연결
- 좁은 의미 : kernel -> 메모리 상주하는 부분
- 넓은 의미 : kernel + other utilities
Role
- computer system 의 자원을 효율적으로 관리
- optimal performance given resources
- sw 자원도 관리해야 함 (process, file, msg etc)
- 사용자가 computer 를 편리하게 사용하게 해줌
- fair resource allocation
- 여러 program이 동시에 돌 수 있게
- cpu 가 빠른 속도로 번갈아 실행
- memory 공간에 적절히 분배
Classification
- 동시 작업 가능 여부
- 가능 : unix, ms windows (일반적)
- 불가능 : ms-dos
- 사용자 수
- 단일 : ms-dos, ms-windows
- 다중 : unix, nt server (일반적)
- 처리 방식
- batch processing :
- 일을 모아서 처리
- ex) punch card
- time sharing : (일반적)
- 컴퓨터 처리 능력을 시간 단위로 분할
- 시간을 보장하는 system 은 아님, 동시에 해야할 일이 많으면 느려짐
- ex) unix, 현대 대부분의 os
- real-time processing :
- 정해진 시간 안에 어떤 일이 반드시 종료됨이 보장되어야 하는 실시간 시스템을 위한 os
- dependency 의 염격성에 따라, hard/soft 로 확장됨
- ex) 특수 목적 시스템
- batch processing :
유사한 용어 정리
- Multitasking : CPU는 한번에 하나의 일만 가능하지만 빠르게 일을 스위치, 동시에 실행되는 것처럼 보이지만, 하나의 프로그램이 끝나기 전에 다른 프로그램이 시작
- Multiprogramming : 메모리에 여러 프로그램이 동시에 올라가는 것, 메모리 측면을 강조
- Time Sharing : CPU의 시간을 분할하여 나누어 쓴다, CPU 측면을 강조
- Multiprocess : 여러 프로그램이 동시에 돈다
- Multiprocessor : 이건 개념이 좀 다름. 하나의 컴퓨터에 CPU (processor) 가 여러 개 붙어 있음을 의미
OS의 예
- UNIX
- 대부분 C 언어로 작성
- 프로그램 개발에 용이
- 최소한의 커널 구조
- 높은 이식성
- 높은 확장성
- DOS (Disk Operating System)
- 단일 사용자용 os, 메모리 관리 능력의 한계 (주 기억 장치 : 640KB)
- MS Windows
- 다중 작업용 GUI 기반 운영 체제
- 풍부한 지원 소프트웨어
OS의 개괄적 구조
- CPU : 누구에게 CPU를 줄까?
- cpu scheduling
- 짧은 간격으로 줬다 뺏었다 함
- Memory : 한정된 메모리를 어떻게 쪼개어 쓰지?
- memory management
- 어떤 프로그램에게 얼만큼 줘야 할까?
- working set model 이라는게 있음, 너무 많은 program 이 동시에 실행되려고 하면 일부 program 만 memory 에 올리고 나머지는 disk 에 내려서 누구에게 집중시켜주는, 올렸다 내렸다 하는 그런게 있음. 나중에 배움
- 누굴 올리고 내려? -> 최근에 많이 사용된 얘를 물고 있고, 많이 안물고 있는 얘들은 disk 로 쫓아낸다~ 뭐 나중에 배운다고 함
- Disk : 디스크에 파일을 어떻게 보관하지?
- File management
- disk 란 head가 움직이면서 읽고 쓰는거라고 함
- 얘도 scheduling 이 필요하다고 함.
- head의 이동을 줄이게끔 scheduling 이 있다고 함 (엘레베이터랑 비슷)
- cpu scheduling 이랑은 성격이 다름
- cpu 는 너무 빨라서 이걸 어떻게 관리하는가
- disk 는 어떻게 head의 움직임을 최소화하는가.
- I/O Device : 각기 다른 입출력장치와 컴퓨터 간에 어떻게 정보를 주고 받게 하지?
- I/O management
- Interrupt 에 기반해서 관리를 한다.
- cpu 는 겁나 빨라서 항상 자기 할 일을 하고 있음
- I/O 가 할 일이 있으면 cpu 를 interrupt 를 해서 뭘 알려줌. 잘 모르겠음 지금은.
- 프로세스 관리
- 프로세스의 생성과 삭제
- 자원 할당 및 반환
- 프로세스 간 협력