728x90
- 운영체제(Operating System): user와 computer hardware의 중재자.
- 역할: Resource allocator, Controll program
- 목적: user program 수행, user problem을 쉽게 해결, computer system을 사용하기 편리하게, computer hw를 효율적으로 사용
- computer system = Hardware + OS + Application programs + users
- kernel - 항상 실행 중인 프로그램으로 운영체제의 핵심이 됨
- system programs - kernel이 아니면서 os와 관련된 프로그램
- application programs - os와 관련이 없는 프로그램
- Bootstrap program : 전원을 켤 때 혹은 리부트할 때 로드됨
- 주로 ROM 또는 EEPROM(firmware)에 저장되어 있음
- 시스템 초기화, os kernel을 로드하고 실행 시작.
- Computer - System Operation (Interrupt)
- I/O devices와 CPU는 동시에 실행할 수 있음(독립적)
- 각 device는 local buffer를 가짐
- CPU는 main memory와 local buffer 사이에서 data를 움직임
- Device controller는 interrupt를 발생시킴으로서 CPU에서 자신의 operation이 끝났음을 알림
- CPU가 interrepted -> 자신이 하던 것을 멈추고, execution을 fixed location으로 전송 후 해당 ISR(iterrupted service routine) 주소에서 시작함
- Interrupt가 serviced -> CPU는 저장된 주소를 PC에 로드하고 중단된 계산을 재개
- trap과 exception은 error 또는 user request에 의해 발생된 software-generated interrupt임
- Storage Structure
- Main memory: CPU가 바로 접근 가능한 큰 스토리지
- Secondary storage: 휘발되지 않는 스토리지를 제공하는 메인 메모리의 확장
- Hard disks: 자기 기록 재료로 덮인 단단한 금속 또는 유리 플래터 (sectors로 나뉘는 tracks로 이루어짐)
- Solid-state disks(SSD): 하드 디스크보다는 빠르고 휘발되지 않음
- I/O Structure
- 컴퓨터는 CPUs와 multiple device controllers로 구성
- device controller는 some local buffer storae와 특수 목적 레지스터의 set을 가짐
- OS는 각 device controller에 대한 device driver를 가짐
- I/O methods - Synchronous / Asynchronous
- Synchronous: I/O가 시작되면 오직 끝났을 때 control이 user program으로 리턴
- Asynchronous : I/O가 시작되면 끝나는 것을 기자리지 않고 control이 user program으로 리턴
- Computer-System Architecture
- Single-Processor Systems: general-purpose instruction set을 실행할 수 있는 주 CPU가 있음
- Multiprocessor Systems
- Parallel systems(=tightly coupled system): 단일 서버 내 여러 개의 코어
- Distributed systems(=loosely couple system): 독립적 서버들이 네트워크로 연결
- 장점: Increased Throughput, Economy of scale, Increased reliability (fault tolerance)
- Asymmetric multiprocessing: master가 slave에 작업 부여
- Symmetric multiprocessing (SMP): 모든 프로세서가 peers
- A Dual-Core design
- UMA(Uniform memory access): 메모리 엑세스 시간이 균일
- NUMA: 메모리 엑세스 시간이 메모리 위치에 따라 달라짐
- 각 코어마다 local memory(cache)를 가짐
- 필요에 따라 remote memory 소자에 접근
- Clustered Systems: 독립된 코어들이 네트워크를 통해 연결되는 시스템
- SAN(storage-area network)를 통해 스토리지 공유
- high-availbility를 제공
- Asymmetric clustering: hot-stanby mode의 하나의 머신을 가짐
- Symmetric clustering: 서로를 감시하면서 어플리케이션을 실행하는 여러 노드를 가짐
- HPC(high-performance computing)을 위한 clusters: application이 parallelization을 사용도록 작성되어야함
- 충돌을 피하기 위해 DLM(distributed lock manager)을 사용
- Operating-System Structure
- Multiprogramming: 메인 메모리 내 여러 개의 프로세스를 교대로 수행하여 자원 낭비 최소화
- (vs multiprocessing: 여러 프로세서가 parallel processing 가능)
- CPU는 항상 하나만 실행
- Degree of multiprogramming: 메인 메모리에 상주하는 프로그램의 수
- Job scheduling을 통해 실행될 프로그램이 선택됨
- Time sharing(multitasking): 매우 빈번하게 CPU가 job을 switch
- 메모리에서 실행 중인 프로그램을 process라고 함
- 프로세스가 메모리에 맞지 않으면 프로그램을 swapping
- Virtual memory가 메모리에 맞지 않는 프로그램의 실행을 허용하게 함
- Operating-System Operations
- software error 혹은 request로 인해 exception이나 trap이 발생
- Dual-mode operation이 OS가 스스로와 다른 시스템 구성요소를 지키도록 도와줌
- User mode와 kernel mode
- 하드웨어에 의해 제공되는 Mode bit으로 두 영역의 control을 변경
- kernel mode에서만 수행될 수 있는 instructions (privileged)을 수행하기 위해 system call 발생시킴
- Transition User -> Kernel Mode: 프로세스 자원 독점 혹은 무한루프를 방지하기 위한 타이머 등의 시스템 콜
- 운영체제의 기능
- Process Management: 프로세스 생성/삭제/중지/재개/동기화/소통/교착상태 해결 등을 위한 매커니즘 제공
- Single-threaded process는 다음 명령어 위치를 가리키는 PC 하나를 가짐
- Multi-threaded process는 스레드 당 하나의 PC를 가짐
- Memory Management: 메모리 사용 현황 추적, 메모리에 옮길 프로세스와 데이터 결정, 메모리 영역 할당 및 할당 해제
- CPU utilization과 사용자에 대한 컴퓨터 응답 속도에 영향
- Storage Management (= file-system management): 파일과 디렉토리 생성 및 삭제, 보조 저장소에 파일 매핑, 파일 백업
- Mass-Storage Management: 빈공간 관리, 스토리지 할당, Disk scheduling
- Caching: faster storage로 일시적 정보 복사를 통해 빠른 접근이 가능하게 함
- 데이터의 이동: hard disk -> m/m -> cache -> hardware register
- Multiprocessor 환경은 cache coherency를 제공해야 함
- Protection and Security
- Protection: 프로세스나 사용자 자원에 대한 access control
- Security: 내외부의 공격에 대한 시스템의 방어
- Process Management: 프로세스 생성/삭제/중지/재개/동기화/소통/교착상태 해결 등을 위한 매커니즘 제공
- Distributed Systems: 시스템이 유지하는 다양한 자원에 대한 접근을 제공하도록 network되어 있는 물리적으로 떨어져 있는 컴퓨터 시스템의 모음
- LAN, WAN, MAN, PAN
- Computing Environments - Virtualization
- Computing Environments - Cloud Computing
- Public cloud: 인터넷을 통해 모든 사람이 이용 가능
- Private cloud: 회사 내에서 운영 및 사용
- Hybrid cloud