운영체제란 ?
하드웨어와 유저(컴퓨터)의 중간 역할을 하는 프로그램
OS의 System goals
- 유저 프로그램을 실행하고 유저의 문제를 쉽게 해결할 수 있게 함
- 컴퓨터 시스템 편의성 제공 (사용자는 안에서 복잡한 일들을 몰라도 됨)
- 컴퓨터 하드웨어를 효율적인 방식으로 사용하게 함
OS의 정의
- OS는 resource allocator (리소스를 할당하는 존재)
- 모든 리소스 관리
- request간 충돌 해결, 리소스 사용 효율적으로
- OS는 control program (프로그램 제어)
- 에러 방지 컨트롤
- 유저(컴퓨터)의 부적절한 사용 컨트롤
OS 구조
Multiprogramming(멀티프로그래밍, Batch System)
- 자원을 효과적으로 하는데 필요
- Single Program은 CPU와 I/O를 둘다 busy하게 할 수 없다
- Job scheduling을 통해 하나의 작업을 선택하고 실행함
- Job scheduling : 메모리에 올라와 있는 job들 중 어떤 것을 먼저 실행시킬 지 순간순간 선택
Timesharing (multitasking)
- Response Time은 1초 이하여야함(예를들어)
- Process : 하나의 문제에 하나의 프로그램 실행
- CPU Scheduling : CPU 자원을 어떤 task에게 할당할 지
- Swapping : 메모리 일부분이 사용되다가 swapping에 의해 바뀌는 것
- Virtual Memory(가상메모리) : 메모리가 실제 메모리보다 많아 보이게 함
컴퓨터 시스템 운영
- I/O 디바이스는 CPU를 병렬적으로(동시에) 실행
- 각 device controller는 특정 디바이스 type 담당
- 각 device controller는 Local Buffer을 가짐
- CPU는 데이터를 메인 메모리에서 local buffer로(또는 그 반대로) 이동시킴
- Device controller는 interrupt를 발생시켜 동작이 종료한 것을 CPU에게 알린다.
컴퓨터 시스템 구조
4가지 컴포넌트로 구성
- 하드웨어
- CPU
- memory
- I/O devices
- OS(Operating System)
- 다양한 Application과 User 사이에서 하드웨어로 Control하고 Coordinate
- Application Programs
- 컴퓨터 문제 해결
- ex.) 워드 프로세서, compiler, web browser 등
- Users
- people
- machines
- other computers
Storage Structure (저장소 구조)
메인 메모리 - CPU는 메모리에 있는 명령어와 데이터에만 접근 가능
- Random Access (순차적이 아니라 랜덤으로 접근 가능)
- Typically volatitle (전원 꺼지면 안에 있는 내용이 사라짐)
하드디스크 - 2차 저장소
- Typically nono-volatile ( 전원 꺼져도 내용이 사라지지 않음)
- 크기가 크고 값이 저렴함
Storage Hierarchy (저장소 계층)
Speed, Cost, Volatility 에 대하여 비교할 수 있다
캐시 → 메모리 → 디스크
오른쪽으로 갈수록 싸고 느리다
Cashing
- 정보를 저장소에 더 빠르게 Copy함
- 예를 들어 A++, B—, C=a+b 코드를 100번 반복한다고 했을 때, cashing 하면 변수를 메모리에 저장하니까 빠르게 접근 가능
- 명령어 면에서 지역성 있음
- 데이터를 가져오는데 있으면 cache hit, 없으면 cache miss라고 함
Device Driver
- 각 디바이스 컨트롤러가 I/O를 관리할 수 있게 컨트롤러와 OS 간 통일된 인터페이스 제공
- 예를들어 A와 B가 아키텍처 동작하는게 다른데, Device Driver가 각각에 맞는 전기적 신호로 바꿔주어 해당되는 동작 하게 함
Computer System Architecture
Multiprocessors(멀티 프로세서)
Advantage
- 단위시간. 즉, 1초에 더 많은 일 가능
- 경제적
- 실패하면 다른 곳에서 실행하며 Reliability(신뢰성)가 높음
2가지 Type
- Asymmetric Multiprocessing - 각 프로세서가 적합한 특정 task할당, 주종관계
- Symmetric Multiprocessing - 각 프로세서가 모든 일을 수행, 멀티 프로세서 간은 느리고 멀티코어 안에서는 빠르게 Cache 공유 가능
프로세스
프로세스 관리 (Process Management)
프로세스 : active entity (실행중인 상태)
프로그램 : passive entity (수동적인 상태)
- Process Termination(프로세스 종료) 하려면 재사용 가능한 리소스를 회수해야함
- Program Counter(프로그램 카운터) : 다음 실행될 instruction을 가르키는 location
- Single-Threaded 프로세스는 ****하나의 program counter를 가짐
- Multi-Threaded 프로세스는 각 thread마다 하나의 program counter를 가짐
프로세스 관리 활동 (Process Managemetn Activities)
- 유저와 시스템 프로세스들 모두 Creating and Deleting
- 프로세스를 Suspending(일시정지) and Resuming(재개)
- 프로세스 동기화(순서)
- 프로세스 Communication (IPC, 프로세스끼리 정보전달)
- Deadlock Handling (Deadlock : 서로 자원을 쓰려고 기다리고 있는 상태)
메모리 관리 (Memory Management)
- CPU는 메모리에만 접근 가능
- 현재 사용되고 있는 것 track
- 어떤 프로세스가 메모리에 올라와 있고 나가는 지 결정
Data A를 Disk에서 Register로 Migration
hard disk → main memory → cache → hardware register
- 멀티 프로세서 환경은 cache coherency(일관성)를 제공해야 함
컴퓨팅 환경 (Computing Enviroments)
- Client가 request를 만들고 server가 응답
- Real Time Embedded Systems
- 특정 역할을 반복하는것을 embedded라고 함
- 각 시간에 반드시 끝내야 하는 시스템 : real time system
- Constraints(제약사항)이 만족할 때 행위가 deadline 안에 되어야 함