OS(1) - Introduction
OS 관련 포스팅
- OS(1) - Introduction
- OS(2) - Interrupt-Based System
- OS(3) - Process Management
- OS(4) - CPU Scheduling
- OS(5) - Thread
- OS(6) - Classical Synchronization Problems
- OS(7) - Deadlock
- OS(8) - Monitor
- OS(9) - Midterm
- OS(10) - Main Memory Management
- OS(11) - Contiguous Memory Allocation
운영체제(Operating System, OS)의 목적
- 컴퓨터 하드웨어를 잘 관리하여
- HW: processor, memory, disk, keyboard, mouse, monitor…
- OS가 메모리에 올라오면 User가 컴퓨터를 제어할 수 있게 됨
- 성능을 높이고
- 같은 HW라도 OS가 좋으면 성능이 향상됨
- 사용자에게 편의성을 제공
- 컴퓨터를 몇 번만 사용해보면 누구나 쉽게 사용할 수 있음
- 과거, 1940s-1950s에는 전문가(oprator)들만 컴퓨터를 사용할 수 있었음
부팅(Booting)
boot: n. 목이 긴 신발, 부츠
booting: 부츠를 끌어당겨 신는 것처럼 OS를 메인 메모리로 끌어당김
- 전원을 켜면
- ROM의 code를 읽어와 실행
- ROM: Read Only Memory
- RAM: main memory의 대부분을 차지(수GB(10^9))
- POST(Power-On Self-Test) 실행
- 전원을 켰을 때, 컴퓨터의 환경 설정이 제대로 되었는지 확인
- Boot loader실행
- load: v.적재하다
- 하드 디스크 안의 OS를 메인 메모리로 가져옴
- OS가 메인 메모리(RAM)에 올라오면, 명령을 받아들일 준비를 마침
- Windows의 경우 바탕화면이 뜨고, Linux의 경우 prompt 창이 뜸
OS = kernel + shell
- Kernel
- 핵심
- HW를 둘러싸며 이를 제어, 관리함
- 실제로 관리하는 프로그램
- Shell
- OS의 껍질 부분
- 명령어 해석기(command interpreter)
- 사용자로부터 명령을 받아 변역 후 해당 명령을 실행함
- 명령: 아이콘 더블 클릭(Windows), 텍스트 입력(Linux
$ls
(현 directory file 보여줌),$who
(사용자 확인),$ds
(디스크 용량 확인) 등)
OS의 위치
- Application(App) ⊃ OS ⊃ HW
- 정부(government)에 비유할 수 있음
- 주어진 자원을 할당(resource allocator)하고 관리함(resource manager)
- OS가 직접 일을 하지 않고, 각 부서에 맞는 업무를 할당함
- 프로세스 관리와 메인 메모리 관리가 가장 중요한 업무
역사
- 컴퓨터의 역사
- 1940s, OS가 없었음
- programmer가 종이에 연필로 program을 작성해 전산실에 전달
- 전달받은대로 구멍(천공)을 뚫은 카드와 compiler 프로그램 카드를 카드 리더기에 올림
- 프로그램과 compiler가 메모리에 적재되고 기계어가 도출됨
- 처리기(processor)가 기계어를 실행하면
- line printer가 망치로 두드려 결과를 인쇄
- Batch processing system(일괄처리)
- resident monitor: 최초의 OS
- 사람(operator)이 직접 compiler, linker, loading을 했음
- 이 일련의 과정을 메모리에 프로그램으로 넣어(=상주시켜) 자동으로 실행시킴
- Multiprogramming system(다중 프로그래밍)
- 컴퓨터는 비싼 자원
- CPU에 비해 i/o의 처리 속도는 느리며, i/o 처리 시간 동안 CPU는 idle상태(가동되지 않는)가 됨
- i/o 처리시 다음 user의 연산을 처리
- 하나의 CPU를 여러 user(program)가 사용해 이용률을 증가시킴
- user program의 효율적인 배치를 고민해야 함
- Time-sharing system(시공유 시스템)
- 아주 짧은 시간(1/100초~1/1000초)동안 각 user의 작업을 나눠서 처리함
- 혼자서 CPU를 쓰는 느낌을 줄 수 있음
OS 기술 천이
- 컴퓨터 규모별 분류
-
Supercomputer > Mainframe > Mini > Micro
Supercomputer: 최강의 컴퓨터. 메모리 용량이 크고, CPU가 빠르며, 보조 기억장치가 뛰어남
Mainframe: 수백 대의 단말기를 연결한 형태
Mini: 수십 대의 단말기를 연결한 형태 -
Supercomputer > Server > Workstation > PC > Handheld > Embeded
Handheld: 노트북, 태블릿, 스마트 폰
Embeded: 차나 가전에 내장된 형태
-
- 고성능 컴퓨터의 기능이 Handheld, Embeded까지 적용됨
고등 운영체제
(※대학원 과정)
- 다중 프로세서 시스템
- 분산 시스템
- 실시간 시스템