티스토리 뷰
Ch1. 컴퓨터 시스템 개요
컴퓨터의 자원을 효율적으로 관리해서 사용자에게 서비스를 제공하는 소프트웨어
컴퓨터 하드웨어
프로세서
계산하는 역할
- CPU
- GPU
- 응용 전용 처리장치 등
메모리(Memory)
무언가 저장하는 역할
- 주 기억장치
- 보조 기억장치
주변장치
- 키보드/마우스
- 모니터, 프린터
- 네트워크 모뎀 등
프로세서 (Processor)
- 컴퓨터의 두뇌 (중앙처리장치)
- 연산 수행하고 컴퓨터의 모든 장치의 동작을 제어함
레지스터 (Register)
- 프로세서 내부에 있는 메모리
- 프로세서가 사용할 데이터를 저장
- 컴퓨터에서 가장 빠른 메모리
- 레지스터의 종류
- 용도에 따른 분류
- 전용 레지스터, 범용 레지스터
- 사용자가 정보 변경 가능 여부에 따른 분류
- 사용자 가시 레지스터, 사용자 불가시 레지스터
- 저장하는 정보의 종류에 따른 분류
- 데이터 레지스터, 주소 레지스터, 상태 레지스터
- 용도에 따른 분류
사용자 가시 레지스터
운영체제와 사용자 프로그램을 통해 접근이 가능한 데이터와 주소 등을 보관한다.
- 데이터 레지스터 : 함수 연산에 필요한 데이터를 저장
- 주소 레지스터 : 주소나 유효 주소를 계산하는 데 필요한 주소의 일부분을 저장
사용자 불가시 레지스터
프로세스에 제어와 상태를 관리한다.
- 프로그램 카운터 (PC, Program Counter) : 다음에 실행할 명령어의 주소를 보관하는 레지스터
- 명령어 레지스터 (IR, Instruction Register) : 현재 실행하는 명령어를 보관하는 레지스터
- 누산기(ACC, Accumlator) : 데이터를 일시적으로 저장하는 레지스터
운영체제가 프로세서에게 시키는 일
- 프로세서에게 처리할 작업 할당 및 관리
- 프로세스 생성 및 관리
- 프로그램의 프로세서 사용 제어
- 프로그램의 프로세서 사용 시간 관리
- 복수 프로그램간 사용 시간 조율 등
메모리 (Memory)
- 데이터를 저장하는 장치 (기억장치)
- 프로그램, 사용자 데이터 등
- 메모리의 종류 (그림 참조)
- 올라갈 수록 속도는 빨라지고 용량은 적어진다.
주기억 장치(Main memory)
- 프로세서가 수행할 프로그램과 데이터 저장
- DRAM을 주로 사용 : 용량이 크고 가격이 저렴하다.
- 디스크 입출력 병목현상(I/O bottleneck) 해소
왜 굳이 Disk에서 Processor로 가져다 쓰는 것이 아니라 Main meory를 거쳐서 갈까?
- 디스크에 비해 CPU의 발전 속도가 빨라져 속도 Gap이 생겼다.
- 프로세서가 프로그램을 수행하는 동안 Disk에서 뽑아서 다음에 수행할 프로그램을 담아둘 공간이 필요하다.
- CPU보단 느리더라도 용량이 많고 디스크보다 용량이 적더라도 빠른 장치 => 메인 메모리
캐시 (Cache)
- 프로세서 내부에 있는 메모리 (L1, L2 캐시 등)
- 속도가 빠르고, 가격이 비쌈
- 메인 메모리의 입출력 병목현상 해소
- 메인 메모리를 넣었음에도 Gap을 메꿔도 차이가 남.
- 비슷한 방법으로 캐시를 도입
캐시의 동작
- 일반적으로 HW적으로 관리 됨
- 캐시 히트 (Cache hit) : 필요한 데이터 블록이 캐시 존재
- 캐시 미스 (Cache miss) : 필요한 데이터 블록이 없는 경우
- 오히려 손해
보통 캐시 128KB 정도 밖에 안 되는데 효과를 볼 수 있을까?
Ans) 지역성!!!
지역성(Locality)
- 공간적 지역성 (Spatial locality)
- 참조한 주소와 인접한 주소를 참조하는 특성
- 예) 순차적 프로그램 수행
- 어떤 주소를 한 번 참조하면 다음 번에 이 근처 주소를 참조할 가능성이 높다.
- 참조한 주소와 인접한 주소를 참조하는 특성
- 시간적 지역성 (Temporal locality)
- 한 번 참조한 주소를 곧 다시 참조하는 특성
- 예) For 문 등의 순환문
- 특정 메모리를 참조했다면 얼마 지나지 않아 또 참조할 가능성이 높다.
- 한 번 참조한 주소를 곧 다시 참조하는 특성
- 지역성은 캐시 적중률(cache hit ratio)과 밀접
- 알고리즘 성능 향상 위한 중요한 요소 중 하나
A와 B의 코드 중 어떤 코드를 선택할 것인가?
캐시는 메인 메모리에서 특정 데이터를 사용하면 해당 데이터만 가져오는 것이 아니라 특정 영역을 가져와서 캐시를 채워넣는다. 이 때 영역의 크기를 Cache line(block) 이라고 부른다.
A의 코드를 사용해야 하나의 영역을 가져올 경우에 캐시에서 바로 대응할 수 있다.
보조기억 장치(Auxiliary memory / storage)
- 프로그램과 데이터를 저장
- 프로세서가 직접 접근할 수 없음(주변장치)
- 주기억장치를 거쳐서 접근
- (프로그램/데이터 > 주기억장치) 인 경우는? 20GB 게임을 8GB 메모리로 어떻게 돌릴 수 있을까?
- 가상 메모리(Virtual memory)
- 용량이 크고 가격이 저렴
운영체제가 메모리에게 시키는 일
메모리 할당 및 관리
- 프로그램의 요청에 따른 메모리 할당 및 회수
- 할당된 메모리
가상 메모리 관리
- 가상메모리 생성 및 관리
- 논리 주소 => 물리주소 변환
시스템 버스(System Bus)
- 하드웨어들이 데이터 및 신호를 주고 받는 물리적인 통로
- 데이터 버스 : 프로세서와 메인 메모리, 주변장치 사이에서 데이터를 전송
- 주소 버스 : 프로세서가 시스템의 구성 요소를 식별하는 주소 정보를 전송
- 제어 버스 : 프로세서가 시스템의 구성 요소를 제어하는데 사용
주변 장치
- 입력장치 : 마우스, 키보드
- 출력장치 : 모니터, 프린터, 스피커
- 저장장치 : CD, USB
운영체제가 주변장치에게 하는 일
장치드라이버 관리
- 주변 장치 사용을 위한 인터페이스 제공
인터럽트 처리
- 키보드의 입력이 들어왔을 때 시스템에게 알려주는 것
- 주변 장치의 요청 처리
파일 및 디스크 관리
- 파일 생성 및 삭제
- 디스크 공간 관리
출처
반응형
'Programming > 운영체제' 카테고리의 다른 글
Ch2. 운영체제 개요 (0) | 2021.06.16 |
---|
댓글