https://sites.google.com/view/hpclab/courses/operating-system
https://youtu.be/EdTtGv9w2sA
한국기술교육대학교 김덕수교수님
운영체제 강의 듣고 정리합니다.
컴퓨터 시스템 개요
Computer system overview
운영체제(Operating System, OS)
- An operating system is
- a software that operates a computer system
컴퓨팅 자원(컴퓨터 시스템 자원, HW)들을 효율적으로 관리해서 그것을 통해서 사용자에게 서비스를 제공하는 소프트웨어
컴퓨터 하드웨어
- 프로세서(Processor) - 계산, 연산
- CPU
- 그래픽카드(GPU)
- 응용 전용 처리장지 등(...)
- 메모리(Memory) - 저장
프로세서(Processor)
컴퓨터의 두뇌(중앙처리장치)
레지스터(Register)
프로세서 내부에 있는 메모리
- 프로세서가 사용할 데이터 저장
- 컴퓨터가 가장 빠른 메모리
사용자 가시 레지스터
- 데이터 레지스터 - 함수 연산에 필요한 데이터를 저장. 값, 문자 등을 저장하므로 산술연산이나 논리 연산에 사용하며, 연산 결과로 플래그 값을 저장.
- 주소 레지스터 - 주소나 유효 주소를 계산하는 데 필요한 주소 일부분을 저장. 주소 레지스터에 저장한 값(값 데이터)를 사용하여 산술 연산을 할 수 있다.
사용자 불가시 레지스터
- 프로그램 카운터(PC, Program Counter) - 다음에 실행할 명령어의 주소를 보관하는 레지스터. 계수기로 되어 있어 실행 할 명령어를 메모리에서 읽으면 명령어 길이만큼 증가하여 다음 명령어를 가리킴. 분기 명령어는 목적 주소로 갱신할 수 있다.
- 명령어 레지스터(IR, Instruction Register) - 현재 실행하는 명령어를 보관하는 레지스터.
- 누산기(ACC, ACCumulator) - 데이터를 일시적으로 저장하는 레지스터.
- 메모리 주소 레지스터 - 프로세서가 참조하려는 데이터의 주소를 명시하여 메모리에 접근하는 버퍼 레지스터.
- 메모리 버퍼 레지스터(MBR, Memory Buffer Register) - 프로세서가 메모리에서 읽거나 메모리에 저장할 데이터 자체를 보관하는 버퍼 레지스터이다. 메모리 데이터 레지스터(MDR, Memory Data Register)라고도 함.
운영체제와 프로세서
프로세서에게 처리할 작업 할당 및 관리
프로그램의 프로세서 사용 제어
- 프로그램의 프로세서 사용 시간 관리
- 복수 프로그램간 사용 시간 조율 등
메모리(Memory)
데이터를 저장하는 장치 (기억장치)
- 프로그램(OS, 사용자SW 등), 사용자 데이터 등
메모리의 종류
- 레지스터 (가장 속도가 빠르다. 가격은 비싸다. 용량은 가장 작다)
- 캐시(Chache)
- 프로세서 내부에 있는 메모리(L1, L2 캐시 등)
- 메인 메모리의 입출력 병목현상 해소
- 캐시의 동작
- 일반적으로 HW적으로 관리 됨
- 캐시 히트 (Cache hit)
- 캐시 미스 (Cache miss)
- 지역성(Locality)
- 공간적 지역성(Spatial locality)
- 시간적 지역성(Temporal locality)
- 지역성은 캐시 적중률(cache hit ratio)과 밀접
- 알고리즘 성능 향상 위한 중요한 요소 중 하나
- 메인메모리 -DRAM
- 주 기억 장치(Main Memory)
- 프로세서가 수행할 프로그램과 데이터 저장
- DRAM을 주로 사용
- 디스크 입출력 병목현상(I/O bottleneck)해소
- 보조기억장기 - 하드디스크 (가장 속도가 느리고 가격은 싸다. 용량은 크다)
- 보조기억장치(Auxiliary memory / secondary memory / storage)
- 프로그램과 데이터를 저장
- 프로세서가 직접 접근할 수 없음(주변장치)
- 주 기억장치를 거쳐서 접근
- (프로그램/데이터 > 주기억장치) 인경우는?
- 용량이 크고, 가격이 저렴
시스템 버스(System Bus)
- 하드웨어들이 데이터 및 신호를 주고받는 물리적인 통로
데이터버스
프로세서와 메인 메모리, 주변장치 사이에서 데이터를 전송한다. 데이터 버스를 구성하는 배선 수는 프로세서가 한 번에 전송할 수 있는 비트 후를 결정하는데, 이를 위드라고 한다.
주소 버스
프로세서가 시스템의 구성요소를 식별하는 주소 정보를 전송한다. 주소 버서를 구성하는 배선 수는 프로세서와 접속할 수 있는 메인 메모리의 최대 용량을 결정한다.
주변 장치
- 프로세서와 메모리를 제외한 하드웨어들
- 입력장치 - 키보드, 마우스 등
- 출력장치 - 모니터, 프린터기, 스피커 등
- 저장장치 - CD, USB, SD카드 등
주변장치와 운영체제
- 장치드라이버관리
- 인터럽트(Interrupt) 처리
- 파일 및 디스크 관리