본문 바로가기

운영체제

간단 컴퓨터 구조

[ 컴퓨터 구조는 왜 공부 하는 것 일까? ]

프로그래머는 컴퓨터가 돌아가는 프로그램을 만드는 일을 한다.

그래서 프로그램이 돌아갈 컴퓨터에 대해서도 알아야한다.

 

[ 컴퓨터의 4가지 구성요소 ]

CPU

 - 메모리에 저장된 명령어를 읽어 들이고 읽어 들인 명령어를 해석하고 실행한다.

 - CPU 가까이에는 레지스터라는 작은 기억장치들과 ALU라는 산술논리연산장치가 있다.

 - 프로그램 카운터 (PC : 메모리에서 가져올 명령어의 주소를 담는 레지스터)

 - 명령어 레지스터 (해석할 명령어를 담는 레지스터)

 - 메모리 주소 레지스터 (메모리 주소를 저장하는 레지스터)

 - 클럭 신호 (클럭 신호마다 CPU는 명령어 사이클 (명령어를 메모리에서 가져오고 실행) 을 반복

   그래서 CPU의 클럭 속도가 빠를수록 성능이 좋음

 - 코어의 쓰레드는 한번에 몇개의 명령어를 동시에 실행할 수 있는지 이다. 예) 8쓰레드 한번에 8개 명령어 처리

주기억장치 (RAM)

- 실행 해야할 명령어들과 데이터들이 저장되는 부품 (프로그램이 실행하려면 프로그램 자체가 적재되어야 한다. 

메모리에 저장된 값의 위치는 주소로 알 수 있다.

보조기억장치 (하드디스크, SSD)

- 주기억장치와 레지스터와 달리 전원이 꺼져도 내용물을 잃지 않는다. (보조기억장치에는 보관할 프로그램을 저장하고 주기억 장치에는 실행할 프로그램이 저장된다.)

입출력장치

- 키보드, 마우스 등

 

이진법

- 1비트, 1바이트, 1킬로 바이트, 1메가 바이트

1바이트는 8비트이며, 1킬로바이트는 1000바이트이다.

000을 기준으로 올라간다.

 

음수

0110 = 6

1001

1010 = 양수 : 10 , 음수 : 6

2의 보수 : 0과 1을 전부 뒤집고 1을 더한다. 그럼 그 수의 반대 부호의 수가 된다.

 

아스키 코드

Char = 1바이트 = 7비트 = 128가지 표현 가능

 

UTF

UTF-8 가변 문자 인코딩 (1 ~ 4바이트)

UTF-16 불변 문자 인코딩 (2바이트)

*영어는 1글자당 1바이트 이며 한글은 2~4바이트 이기 때문에 한글은 UTF-16, 영어는 UTF-8이 효율적이다.

 

논리주소 & 물리주소

이 프로세스의 20번지 주소와 메모리의 20번지 주소는 다를 가능성이 다분하다. (확실히 다르다.)

- 물리주소 : 컴퓨터에 메인메모리에 접근 할 때의 주소

- 논리주소 : 해당 프로그램을 실행 중 CPU가 메모리에 생성 되는 주소

 

캐시메모리

레지스터는 정말 어떤 명령어가 실행되기 직전에 쓰이는 메모리이고, 메모리는 프로그램이 적재되는 공간이다.

하지만 메모리는 접근해서 읽어오는데에 느리고 레지스터는 너무 작다.

그래서 그 중간 단계인 캐시메모리가 있다.

캐시메모리는 메모리에서 접근하는 메모리주소 주변을 크게 들고와서 저장한다.

- 캐시 Hit : 캐시메모리에 있어서 캐시에 있는 것을 가져오는 것

- 캐시 Miss : 캐시메모리에 없는 상태 (해당 데이터를 읽어와서 다시 캐시에 올린다.)

 

캐시메모리는 메모리에서 접근하는 메모리주소 주변을 크게 들고와서 저장한다.

728x90

'운영체제' 카테고리의 다른 글

Virtualization - Virtual Memory  (0) 2024.04.11
Virtualization - CPU Scheduling  (1) 2024.04.09
Thread  (0) 2024.04.09
Process  (0) 2024.04.09