DevKim

[하드웨어] 하드웨어의 구성, CPU,메모리 정리 본문

운영체제

[하드웨어] 하드웨어의 구성, CPU,메모리 정리

on_doing 2020. 12. 29. 21:02
728x90

[1] 하드웨어의 구성


- CPU,메인 메모리

- 출력장치,입력장치,저장장치


 

[2] 용어 간단 정리


1) CPU

- 명령어를 해석하여 실행하는 장치

 

2) 메모리

- 프로그램&데이터 저장하는 장소

 

3) 입력장치

- 마우스,터치스크린..등

 

4) 출력장치

- 모니터, 스피커..등 

*최근에는 그래픽 카드에 GPU (그래픽용 CPU) 달아서 직접 계산함

 

5) 저장장치

- USB,하드디스크..등

 

6) 메인보드

- 다양한 부품들 연결하는 커다란 판 

*가는 선은 버스가 이동하는 경로. 전력이 공급되면 버스로 연결된 부품이 작동함

 

(+)

폰노이만 구조

- 모든 프로그램은 메모리에 올라와야만 실행할 수 있다!!!!

 

* 요리사 : CPU

-> 요리사가 요리방법 결정 = 프로세스 관리

-> 도마위의 재료정리 = 메모리 관리

-> 보관창고 재료 정리 = 저장장치 관리

 

* 도마 : 메모리

-메모리가 큰 애가 당연히 빠르지만, 충분히 큰 메모리를 가진 애 둘을 비교한다면, 크게 차이나지않는다.

 

* 보관창고 : 저장장치 

 


[하드웨어 사양 관련 용어]


1) clock 클록

: CPU로 작업할때 박자에 맞춰서 작업함 

tick 하면 주고 tick 하면 받음 = clock tick

 

2) HZ 헤르츠

: 1초에 CPU가 작업할 수 있는 횟수

1000HZ = 1초에 1000번 작업가능 ! = 당연히 성능지표임

 

3) system bus 시스템 버스

: 메모리&주변장치 연결하는 버스이다.

=> 메모리가 system bus의 속도로 작동한다. (추후에 cpu내부버스와의 속도차이로 지연이 발생하는것을 배움)

 

4) CPU 내부버스

: 말그대로 CPU 내부에 있는 장치를 연결하는 버스이다

=> CPU 클록 속도로 작동

 


[CPU]

=요리사


 

(1) 구성

 

*요리사가 요리하는 것 = 산술논리 연산장치 ( 데이터를 연산하는 것)

*요리사가 양파 미리 다져놔라,..등등 명령함 = 제어장치 (CPU에서 작업을 지시하는 부분)

*재료 임시 보관하기( 양파 한줌 쥐어놓음) = 레지스터 register (CPU내에, data를 임시로 보관하는 곳)

 

(2) register 레지스터의 종류

 

1. User-visible register

:사용자 프로그램에 의해 변경됨


- 데이터 레지스터 DR = 메모리에서 가져온 data를 임시보관

- 주소 레지스터 AR = data 또는 명령어가 저장된 '메모리 주소'가 저장됨

 

2. User-invisible register

: 특수 레지스터들


- 프로그램 카운터 PC : 다음에 실행 할 명령어 주고 가지고 있다가, 제어장치에게 알려줌

- 명령어 레지스터 IR : 현재 실행 중인 명령어 저장

- 메모리 주소 레지스터 MAR : 메모리에서 데이터 꺼내거나 보낼때, 주소를 지정하기 위해 사용

- 메모리 버퍼 레지스터 MBR : 메모리에서 데이터 꺼내거나 보낸 데이터 임시보관

- 프로그램 상태 레지스터 PSR : 연산결과가 음수인지,0 인지 등등 저장함 (if문 ..이런거 사용할때 사용됨)

 

(3) BUS 종류

 

1. control bus 제어 버스

: 다음 작업을 지시함

-> CPU 제어장치와 연결되어있음

-> 메모리 오류발생, 데이터 도착했다..등등 '양방향'으로 주고받음


2. address bus 주소 버스

: "메모리"의 데이터를 가져오거나 보낼때 주소(위치) 알려줌

-> cpu의 메모리 주소 레지스터와 연결되어있음 - "단방향"


3. data bus 데이터 버스

: data 실어서 이동

-> 메모리 버퍼 레지스터와 연결 "양방향"

 

(+)

대역폭 Bandwidth

= 한번에 전달할 수 있는 data의 최대크기

 


[메모리]


"모든 프로그램은 메모리에 올라와야 실행될 수 있다!!!"

 

(1) 메모리의 종류

-RAM : 읽거나 쓰기 가능

-ROM : 읽기만 가능 (데이터 한번 저장하면 바꿀 수 없음)

 

(2) 휘발성 메모리비휘발성

 

1. 휘발성 메모리

->DRAM 

= 0과 1의 데이터가 일정시간이 지나면 사라짐 -> 일정시간마다 다시 재생시켜야함

->SRAM

= 전력 공급되는 동안에는 재생안시켜도됨

 

2. 비휘발성

-> mp3,SSD(하드디스크대신. 빠르고 좋음)

 

(3) 메모리 보호

: 사용자 영역이 운영체제 영역에 침범해서 메모리를 손상시키는 일이 있으면 안된다..

이때!!! 운영체제도 소프트웨어임을 잊으면 안된다 (CPU를 사용하는 작업 중 하나)

하지만 이때!!!!!! 다른 사용자 프로세스가 CPU를 차지했을 땐.. 운영체제가 잠시 중단된다.

그렇다면 누가 메모리를 보호할 수 있을까?!

다른 하드웨어의 도움이 필요하다!!!!!

 

---> 이때 나온 것이, 경계 레지스터와 한계 레지스터이다. 이들이 메모리 주소 범위를 넘나 안넘나를 감시한다.

만약 사용자 작업이 해당 메모리를 넘으면, 인터럽트가 발생하고 모든 작업이 중단된다. CPU는 OS를 깨우고, OS가 해당 프로그램을 강제 종료 시킨다.

 

(4) 부팅

: 운영체제를 메모리에 올리는 과정

 

1. 컴퓨터를 킨다

2. 롬에 있는 바이오스가 실행된다.

3. 바이오스는 주요 하드웨어를 점검하는 동시에, 하드디스크에 있는 "마스터 부트 레코드" 에 저장된 작은 프로그램인 "부트스트랩 코드"를 가져온다

4. "부트스트랩 코드"를 메모리 상에 올린다

5. 운영체제가 실행된다

6. 끝!!!!!!!!!!!!!!

728x90
Comments