# 운영체제 (Operating System)
하드웨어 자원을 잘 활용 (cpu, 보조 기억 장치, I/O 장치들(키보드, 마우스))
사용자들에게 다양한 서비스 지원
자원 : 컴퓨터에 관련된 하드웨어, 소프트웨어 전체
# 하드웨어 구성 요소
1. cpu
- 데이터 연산, 논리 연산, 제어
- 레지스터
2. 주기억장치(main memory) : 휘발성(volatile)
3. 저장 장치 : 비휘발성(영구 저장)
4. 입출력 장치
5. 통신 장치
- 모뎀, 이더넷, wifi, bluetooth
*운영체제가 없으면 하드웨어는 고철덩어리
mp3 player
# 최상위 수준 관점
- 사람에 가깝게
high level language(사용자에 가까움) : C언어, 자바
low level language(기계에 가까움) : 기계어 어셈블리어
bus : 데이터가 오가는 입출력 통로
system bus : 시스템에서 관련된 데이터가 오가는 입출력 통로
pc : 프로그램 카운터
IR : 명령어 레지스터
레지스터 : 아주 적은 공간의 메모리(short term memory)
bus로 연결돼서 계산
cpu 는 메모리와 데이터를 교환해서 가져온 데이터를 처리함
MAR : 주소 저장
MBR : 임시로 저장
** 주요 처리기 레지스터(ppt p9) 중요 **
- 정보가 담겨있는 곳
- 반입(Fetch) : 가져옴
- PC(Program Counter) : 다음에 수행할 명령어의 주소 포함
- IR(Instruction Register) : 지금 수행되고있는 명령어
- PSW :
전체 시스템에 대한 상태를 갖고 있음
다른 작업을 수행할지 말지 (인터럽트 가능/불능화)
슈퍼바이저/사용자모드
- 시스템(운영체제) : 어떤 프로그램 돌릴지
- 우리는 사용자모드(특권모드 아님)
# 인텔 아키텍쳐 (IA-32 processor)
- 32bit(4byte) processor
0~31 bit 짜리 8개
16bit(2byte) 6개
32bit 주소를 담고있는 포인터할수있는 포인터
# 마이크로 프로세서
- 단일 칩에 하나의 프로세서를 집적
- 가장 빠른 범용 프로세서
- 멀티프로세서 : 하나의 칩에 여러 개의 프로세서(코어) 포함
#GPU(Graphical Processing Unit)
- 더 빠른 수학연산 요구, 그래픽 연산
- 게임, 엑셀 대규모 시트
- 단일명령 다중데이터 처리
#DSP(Digial Signal Processing)
- 오디오와 비디오 같은 스트림형 시그널 처리를 위한 프로세서
#SoC(System on a Chip)
- 모뎀과 같은 곳에 내장
- 시스템이 하나의 칩에 올라가 있음
# CPU vs GPU
CPU - 일련의 작업들(Serial)
GPU - 여러가지 작업을 동시에, 코어가 여러개 달림
# 명령어 실행 (Instruction Execution)
- opcode, operand, label
- 명령어 가져와서 실행, 가져와서 실행, 다 실행했으면 끝남 => 실질적으로 안됨
# Fetch : 가져오는 단계
- PC : 다음에 실행될 명령어 주소 가져옴
- IR : 지금 실행되는 명령어가 적재됨
# Execute : 실행하는 단계
# 명령어 범주
- 처리기-메모리
- 처리기-I/O
- 데이터 처리
- 제어
# 가상적 기계의 특성 (16bit cpu)
4bit / 12bit
연산코드(opcode) / 주소(address)
=> 명령어 형식
# 인터럽트 (운영체제 주요 기능)
- 스위치 키면 파워 on, 바탕화면 켜짐, 마우스로 클릭하면 컴퓨터 실행됨 => 컴퓨터 인터럽트
- 컴퓨터 장치들 간의 성능의 차이가 남 => 병목현상(대부분의 I/O 디바이스는 처리기보다 느림)
20초, 15초 같이 뛰면 20초
cpu:1GHz, disk:1분 한 번 도는데 7200rmp(4ms) => 4백만배 차이
write 하는데 4백만초
*rmp : 1분에 몇 번 도는지 디스크 속도
- 인터럽트가 있으면 현재 프로그램 실행(연산) 멈추고 인터럽트 처리 루틴 실행
ex) 현재 읽던 책을 멈추고 질문에 대답함
- 인터럽트 핸들러(처리기)
# 다중 인터럽트
- 우선순위가 높은 것부터 수행
- 프린터, 디스크, 통신 장치(2, 4, 5)
# 메모리 계층 구조
- 양, 속도, 비용간에 서로 대비되는 관계(서로 상반되는 관계)
- 얼마나 빠르나, 크나
속도 : (빠름) 레지스터 > 캐시 > 메모리 > 하드 디스크 (느림)
# hit : 데이터를 찾으려했는데 이미 있음
# miss : 데이터가 찾으려했는데 없음
# 캐시 메모리
- 비용이 저렴한 대용량의 메모리를 제공하기 위함
- 빠른 저장장치에 정보를 복사해 놓음
- 가장 최근에 데이터를 저장(가까운 미래에 쓸 확률 높기 때문)
- 참조 지역성(localit of reference) : 가까이에 있는 곳에서 메모리를 읽어옴
- 메보리 접근 속도 향상시킴
- 운영체제에게 보이지 않고 하드웨어적으로 처리됨
- 프로게서의 속도는 메모리 속도보다 빠름
- 컴퓨터 성능이 안좋으면 cpu 보다 캐시 메모리 바꾸는 게 성능 향상이 좋음(병목 현상)
cpu - cache - RAM - Storage Device - Input Device
=> cpu가 찾는 게 캐시메모리에 없으면 RAM으로(계속 내려감, 있으면 hit 없으면 miss)
=> 아래로 내려갈수록 용량은 커지지만 가격이 비싸짐
- 메인메모리는 0 ~ 2의 n승 - 1 데이터 주소 체계 가짐
- 캐시메모리는 0 ~ M=C-1 태그
- 서로 블록단위로 주고 받을 수 있음
# 디스크 캐시 (버퍼 캐시)
- 어느 정도 모음(클러스터)
# 블록 크기
- 캐시와 메인 메모리 사이에 교환되는 데이터의 단위
- 크기가 클수록 적중률 높음
# 사상함수(mapping function)
- 블록이 캐시의 어느 위치에 저장될 지 결정
- 하나의 블록을 읽어들일 때 다른 블록이 교체될 수 있음
- 함수가 유연할수록 적중률 높이는데 기여
# 교체 알고리즘
- 교체될 블록 선정
- LRU
# 쓰기 정책
- 매번 쓸건지
- 하나의 블록이 업데이터 될 때마다, 교체될 때마다
'전공 공부 > 운영체제' 카테고리의 다른 글
운영체제 9주차 강의 (0) | 2021.04.27 |
---|---|
운영체제 7주차 강의 (0) | 2021.04.13 |
운영체제 5주차 강의 (0) | 2021.04.04 |
운영체제 4주차 강의 (0) | 2021.04.03 |
운영체제 3주차 강의 (0) | 2021.03.16 |