티스토리 뷰

1. 컴퓨터의 기본 구성

 

1) 하드웨어의 구성

✨ 컴퓨터: 중앙처리장치(CPU), 메인 메모리, 입력장치, 출력장치, 저장장치

- CPU는 명령어를 해석하여 실행하는 장치(두뇌)

- 메모리는 작업에 필요한 프로그램과 데이터를 저장하는 장소

- 입력장치는 외부의 데이터를 컴퓨터에 입력하는 장치 > 키보드, 마우스, 스캐너 등

- 출력장치는 컴퓨터에서 처리한 결과를 사용자가 원하는 형태로 출력 > 프린터, 모니터 등

- 저장장치를 사용하는 이유는 저렴하고 전원의 온·오프와 상관없이 데이터를 반영구적으로 저장하기 때문

- 메인보드는 다양한 부품을 연결하고 전원을 공급해 주는 커다란 판, 데이터가 지나다니는 통로는 버스

 

2) 폰노이만 구조

- CPU, 메모리, 입출력장치, 저장장치가 버스로 연결된 구조

- 하드웨어는 그대로 둔 채 작업을 위한 프로그램만 교체해 메모리에 올리는 방식

- 모든 프로그램은 메모리에 올라와야 실행 가능

 

 

3) 기초 용어 정리

- 클록과 헤르츠

- 시스템 버스: 메모리와 주변장치를 연결하는 버스, 메인보드의 동작 속도를 의미(FSB)

- CPU 버스: CPU 내부의 다양한 장치들을 연결한느 버스, 시스템 버스보다 빠르다(BSB)

- 컴파일: 컴퓨터는 기계어만 인식하기 때문에 고급언어를 사용해 만든 소스코드를 기계어로 번역하는 작업


2. CPU와 메모리

 

1) CPU의 구성과 동작

- 산술논리 연산장치: CPU에서 데이터를 연산하는 장치

- 제어장치: CPU에서 작업을 지시하는 부분

- 레지스터: 작업에 필요한 데이터를 CPU 내부에 보관하는 곳

✨ 레지스터의 종류

 > 데이터 레지스터(DR): 메모리에서 가져온 데이터를 임시로 보관할 때 사용한다. 일반 레지스터라고도 부름

 

 > 주소 레지스터(AR): 데이터 또는 명령어가 저장된 메모리의 주소는 주소 레지스터에 저장된다.

 

 > 그 외에도 특별한 용도로 사용되는 특수 레지스터들이 있다. 프로그램 카운터, 명령어 레지스터, 메모리 주소 레지스터,   메모리 버퍼 레지스터인데 사용자가 임의로 변경할 수 없어 불가시 레지스터라고 부른다. 

 

✨ 버스의 종류

- CPU와 메모리, 주변장치 간에 데이터를 주고받을 때 시스템 버스를 사용

 > 제어 버스, 주소 버스, 데이터 버스

 

- 버스의 대역폭은 CPU가 한 번에 처리할 수 있는 데이터의 크기와 같다.

- 32bit CPU는 한꺼번에 처리할 수 있는 데이터의 크기가 32bit라는 의미

 

2) 메모리의 종류와 부팅

- 메모리는 읽거나 쓸 수 있는 램(RAM)과 읽기만 가능한 롬(ROM)으로 구분된다.

- 램은 전력이 끊기면 데이터가 사라지는 휘발성 메모리와 끊겨도 데이터 보관이 가능한 비휘발성 메모리로 나뉜다.

 ✨ 램의 종류

 > 휘발성 메모리: DRAM, SRAM, SDRAM

 

 > 비휘발성 메모리: FRAM, PRAM, 플래시 메모리

 

- 일괄작업 시스템에서의 메모리 보호: 메모리가 운영체제 영역과 사용자 영역으로 구분되어 영역을 침범하지 못한다.

- 현대의 운영체제는 시분할 기법을 사용해 사용자 영역이 여러 개의 작업 공간으로 나뉘어 있다. 메모리를 보호하기 위해 CPU는 현재 진행 중인 작업의 메모리 시작 주소를 경계 레지스터에 저장한 후 작업한다.

- 부팅: 컴퓨터를 켰을 때 운영체제를 메모리에 올려 실행하는 과정

- 부트스트랩 코드: 하드디스크에 저장된 운영체제를 메모리로 가져와 실행하는 역할을 하는 프로그램


3. 컴퓨터 성능 향상 기술

✨ CPU와 메모리, 주변장치의 작업 속도가 다른데 이러한 장치간 속도 차이를 개선하는 방법을 알아본다. 

 

1) 버퍼: 두 장치 사이의 속도 차이를 완화하는 역할을 한다. 일정량의 데이터를 모아 한꺼번에 전송해 적은 작업량으로 많은 양의 데이터를 옮길 수 있게 한다.

 

- 스풀: CPU와 입출력장치가 독립적으로 동작하도록 고안된 소프트웨어적인 버퍼

 

- 캐시: 메모리와 CPU 간의 속도 차이를 완화하기 위해 메모리의 데이터를 미리 가져와 저장해 두는 임시 장소, CPU가 앞으로 사용할 것으로 예상되는 데이터를 미리 가져다 놓음

 

2) 저장장치의 계층 구조

- 속도가 빠르고 값이 비싼 저장장치를 CPU 가까운 쪽에 두고, 싸고 용량이 큰 저장장치를 반대쪽에 배치해 적당한 가격으로 빠른 속도와 용량은 얻는 방법

 

3) 인터럽트

- 작업의 능률을 높이기 위해 보조를 두는 개념

- CPU의 작업과 저장장치의 데이터 이동을 독립적으로 운영함으로써 시스템의 효율을 높인다. 입출력 관리자 또는 장치 관리자가 보조 역할을 한다.

- 입출력 관리자가 CPU에 보내는 완료 신호를 인터럽트라고 한다.

- 어떤 장치의 작업이 끝났는지를 CPU에게 알려주기 위해 '인터럽트 번호'를 사용한다. 여러개의 인터럽트를 하나의 배열로 만든 것을 '인터럽트 벡터'라고 한다.

 

4) 직접 메모리 접근

- 인터럽트 방식에 의해 CPU가 요청한 데이터를 메모리에 가져다 놓아야 하는데 문제가 발생

- 입출력 관리자는 CPU가 아니기에 메모리에 접근 권한이 없음

- CPU의 허락 없이 메모리에 접근할 수 있는 권한이 필요한데 이를 직접 메모리 접근(DMA)라고 한다.

 

5) 메모리 맵 입출력

- 직접 메모리 접근으로 데이터가 섞이면 관리가 어려워 진다.

- 메모리의 일정 공간을 입출력에 할당하는 기법을 메모리 맵 입출력( memory mapped I/O) 이라고 한다.

 

6) 사이클 훔치기

- CPU와 직접 메모리 접근이 동시에 메모리에 접근하려 한다면?

- 속도가 빠른 CPU가 일출력장치에게 메모리 사용 권한을 양보한다.

- CPU 입장에서는 메모리 접근이 사이클을 훔친 것이 되어 이를 사이클 훔치기(cycle stealing)라고 부른다.


 

4. 멀티 프로세싱

 

1) 멀티코어 시스템

- 멀티 프로세서 시스템: 컴퓨터의 성능을 높이기 위해 프로세서를 여러 개 설치해 사용,  많은 작업을 동시에 실행시킬 수 있다.

- 멀티코어 시스템: 기존 시스템을 유지한 채 멀티 프로세싱을 할 수 있게 하는 시스템

 

2) CPU 멀티스레드

- 하나의 코어에 여러 개의 스레드를 이용하는 방식

- 여러 개의 스레드를 동시에 처리하는 방법을 CPU 멀티스레드라고 부른다.

'Study > OS' 카테고리의 다른 글

기말고사 정리2  (1) 2023.06.09
기말고사 정리1  (2) 2023.06.08
Chapter 04 CPU 스케줄링  (0) 2023.04.16
Chapter 03 프로세스와 스레드  (0) 2023.04.13
Chapter 01 운영체제의 개요  (0) 2023.04.08
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/09   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함