티스토리 뷰
[한빛아카데미] 운영체제 책으로 학습한 내용을 정리한 것입니다.
* 컴퓨터 시스템(Computer System)
- 소프트웨어 + 하드웨어로 구성
- 소프트웨어(Software) : 어떤 작업을 지시하는 명령어로 작성한 프로그램
- 하드웨어(Hardware) : 데이터를 처리하는 물리적인 기계장치a
- 운영체제(Operating System) : 컴퓨터 하드웨어를 관리하는 소프트웨어
[컴퓨터 하드웨어의 구성]
* 프로세서(Processor)
- 컴퓨터 하드웨어에 부착한 모든 장치의 동작을 제어하고 명령을 실행함
- 중앙처리장치(CPU, Central Processing Unit)라고도 함
[프로세서의 구성]
* 레지스터(Register)의 구성
- 레지스터 : 프로세서에 내부에 있으며, 프로세서가 사용할 데이터를 보관하는 가장 빠른 메모리
- (용도에 따라) 전용 레지스터와 범용 레지스터로 구분할 수 있음
- (사용자가 정보를 변경할 수 있는 지에 따라) 사용자 가시 레지스터와 사용자 불가시 레지스터로 구분할 수 있음
* 사용자 가시 레지스터(User-Visible Register)
- 사용자가 운영체제와 사용자 프로그램을 이용하여 정보를 변경할 수 있는 레지스터
종류 | 설명 | |
데이터 레지스터 DR, Data Register |
- 함수 연산에 필요한 데이터를 저장함 - 값, 문자 등을 저장하므로 산술 연산이나 논리 연산에 사용하며, 연산 결과로 플래그 값을 저장함 |
|
주소 레지스터 AR, Address Register |
- 주소나 유효 주소를 계산하는데 필요한 주소의 일부분을 저장함 - 주소 레지스터에 저장한 값(값 데이터)를 사용하여 산술 연산을 할 수 있음 |
|
기준 주소 레지스터 | - 프로그램을실행할 때 사용하는 기준 주소 값을 저장함 - 기준 주소 레지스터는 페이지나 세그먼트처럼 블록화된 정보에 접근하는데 사용함 |
|
인덱스 레지스터 | - 유효 주소를 계산하는데 사용하는 주소 정보를 저장함 | |
스택 포인터 레지스터 | - 메모리에 프로세서 스택을 구현하는데 사용함 - 많은 프로세스와 주소 레지스터를 데이터 스택 포인터와 큐 포인터로 사용함 - 보통 반환 주소, 프로세서 상태 정보, 서브루틴의 임시 변수를 저장 |
* 사용자 불가시 레지스터(User-Invisible Register)
- 사용자 정보를 변경할 수 없는 레지스터
종류 | 설명 |
프로그램 카운터 PC, Program Counter |
- 다음에 실행할 명령어의 주소를 보관하는 레지스터 - 계수기로 되어 있어 실행할 명령어를 메모리에서 읽으면 명령어의 길이만큼 증가하여 다음 명령어를 가리키며, 분기 명령어는 목적 주소로 갱신할 수 있음 |
명령어 레지스터 IR, Instruction Register |
- 현재 실행하는 명령어를 보관하는 레지스터 |
누산기 ACC, ACCumulator |
- 데이터를 일시적으로 저장하는 레지스터 |
메모리 주소 레지스터 MAR, Memory Address Register |
- 프로세서가 참조하려는 데이터의 주소를 명시하여 메모리에 접근하는 버퍼 레지스터 |
메모리 버퍼 레지스터 MBR, Memory Buffer Register |
- 프로세서가 메모리에서 읽거나 메모리에 저장할 데이터 자체를 보관하는 버퍼 레지스터 |
* 메모리(Memory)
- 메모리는 컴퓨터 성능과 밀접한데, 사용자는 당연히 크고 빠르며 비용이 저렴한 메모리를 요구함
- 속도가 빠른 메모리의 경우에는 가격이 비싸서 보통은 메모리 계층 구조를 구성하여 비용, 속도, 용량, 접근시간 등을. 상호 보완함
[메모리 계층 구조]
- 캐시 : 메인 메모리와 프로세서의 속도 차이를 보완함
- 레지스터 : 최상위에는 프로세서가 사용한 데이터를 보관함
- 불필요한 프로그램과 데이터는 하드 디스크에 저장했다가 실행/참조할 때만 메인 메모리로 옮기는 원리를 작용한 방법
* 메인 메모리(Main Memory)
- 프로세서 외부에 있으며, 프로세서에서 즉각적으로 수행할 프로그램과 데이터를 저장하거나 프로세서에서 처리한 결과를 메인 메모리에 저장함
- 입출력장치도 메인 메모리에서 데이터를 받거나 저장함
- 주기억장치 또는 1차 기억장치라고도 함
- 저장 밀도가 높고 가격이 싼 DRAM(Dynamic RAM)을 많이 사용함
- 디스크 입출력 병목 현상을 해결하는 역할
- 다수의 셀(Cell)로 구성되며, 각 셀은 비트로 구성됨
(참고) 셀이 K비트라면 셀에 2^k값을 저장할 수 있음
- n비트라면 주소 범위는 0~2^(n-1)
* 메모리 매핑(Memory Mapping)
- 컴파일로 논리적 주소를 물리적 주소로 변환하는 과정
- 물리적 주소 : 컴퓨터에 주어진 주소
- 논리적 주소 : 컴파일러가 프로그램을 기계 명령어로 변환할 때 변수와 명령어로 할당하는 주소
(참고) 논리적 주소는 별도의 주소 공간에 나타남
* 캐시(Cache)
- 프로세서 내부나 외부에 있으며, 처리 속도가 빠른 프로세서와 상대적으로 느린 메인 메모리의 속도 차이를 보완하는 고속 버퍼
- 데이터를 블록 단위로 가져와 프로세서에 워드 단위로 전달하여 속도를 높임
- 캐시 적중(Cache Hit) : 작은 용량의 캐시에 프로세서가 이후 참조할 정보가 있을 경우
- 캐시 실패(Cache Miss) : 작은 용량의 캐시에 프로세서가 이후 참조할 정보가 없을 경우
- 공간적 지역성(Spatial Locality) : 대부분의 프로그램이 참조한 주소와 인접한 주소의 내용을 다시 참조하는 특성
- 시간적 지역성(Temporal Locality) : 한 번 참조한 주소를 곧 다시 참조하는 특성
* 시스템 버스(System Bus)
- 하드웨어를 물리적으로 연결하여 서로 데이터를 주고받을 수 있게 하는 통로
- 컴퓨터 내부의 다양한 신호(데이터 입출력 신호, 프로세서 상태 신호, 인터럽트 요구와 허가 신호, 클록, 신호 등)를 시스템 버스로 전달함
[시스템 버스 종류]
종류 | 설명 |
데이터 버스 | - 프로세서와 메인 메모리, 주변장치 사이에서 데이터를 전송함 - 워드 : 데이터 버스를 구성하는 배선 수는 프로세서가 한 번에 전송할 수 있는 비트 수를 결정 |
주소 버스 | - 프로세서가 시스템의 구성 요소를 식별하는 주소 정보를 전송함 - 주소 버스를 구성하는 배선 수는 프로세서와 접속할 수 있는 메인 메모리의 최대 용량을 결정함 |
제어 버스 | - 프로세서가 시스템의 구성 요소를 제어하는데 사용함 - 제어 신호로 연산장치의 연산 종류와 메인 메모리의 읽기나 쓰기 동작을 결정함 |
* 주변장치
- 프로세서와 메인 메모리를 제외한 나머지 하드웨어 구성 요소
- 단순히 입출력장치라고도 하나, 크게 입력장치, 출력장치, 저장장치로 구분함
[주변장치 종류]
종류 | 설명 |
입력장치 | - 컴퓨터에서 처리할 데이터를 외부에서 입력하는 장치 |
출력장치 | - 입력장치와 반대로 컴퓨터에서 처리한 데이터를 외부로 보내는 장치 |
저장장치 | - 메인 메모리와 달리 거의 영구적으로 데이터를 저장하는 장치 - 데이터를 입력하여 저장하며, 저장한 데이터를 출력하는 공간이므로 입출력장치에 포함하기도 함 |
'개인공부 > 운영체제' 카테고리의 다른 글
[운영체제] 병행 프로세스와 상호배제 (0) | 2023.11.29 |
---|---|
[운영체제] 스레드(Thread) (0) | 2023.11.27 |
[운영체제] 프로세스(Process) (0) | 2023.11.27 |
[운영체제] 운영체제의 개념 (0) | 2023.11.27 |
[운영체제] 컴퓨터 시스템의 동작 (0) | 2023.11.24 |