1. 운영체제
in CS on OS
운영체제?
- 하드웨어와 애플리케이션 사이에 있는 시스템 소프트웨어
- 목적?
- 사용을 편하게 - Low-level 하드웨어를 조작할 수 있는 간단한, 통합된 인터페이스 제공
- 공유 - 하드웨어 자원을 여러 프로세스/사용자가 공유할 수 있도록
- 보호 - 하드웨어를 잘못된 사용으로부터 보호함
- Key Interfaces
- ISA (Instruction Set Architecture) : x86, ARM, MIPS (Machine Language)
- ABI (Application Binary Interface)
- API (Application programming interface)
- CISC (Complex Instruction Set Computer)
- 복잡한 명령어 집합
- 명령어의 수가 많음
- 80년대 중반까지 사용 (x86, VAX)
- RISC (Reduced Instruction Set Computer)
- 간단한 명령어 집합
- 적은 수의 명령어
- 80년대 이후의 대부분의 아키텍처에 적용
- ex) PowerPC, Alpha, SPARC, IA64, ARM
- Revolution of OS (순서대로)
- Serial Processing
- Turing Machine (1936)
- 새로운 수학적인 컴퓨팅 모델
- 현대 컴퓨터의 이론적인 배경
- 현존하는 모든 컴퓨터는 튜링 머신의 Subset
- Bombe(1940)
- 독일 에니그마를 해독하기 위해 만들어진 최초의 전자식 컴퓨터
- Colossus(1943)
- 1세대 Programmable Digital Computer (Hard-wired Programming)
- ENIAC (Electronic Numerical Integrator And Computer)
- Simple Batch Systems
- Monitor
- 사용자가 작업(job)을 카드 또는 테이프에 작성한 후 제출 - 순서대로 처리
- 모니터란 프로그램은 메모리에 상주, 인풋을 하나씩 처리함
- 프로세서에 비해 입출력이 굉장히 느리기 때문에 idle한 상태가 오래 지속됨 - 비효율
- Multiprogrammed Batch Systems
- I/O를 기다리지 않고 그 시간에 다른 작업(job)을 처리함
- Processor Utilization이 좋음
- 자신의 작업을 처리하기 위해 이전의 작업을 기다려야 함
- Time Sharing Systems
- 여러 사용자가 동시에 하나의 컴퓨터를 사용 가능
- 각 사용자가 기다리는 response time이 줄어듬 (Minimizing Response time is more important than maximizing throughput )
- Time slice / Round Robin
- Context Switching