본문 바로가기

프로그래밍 학습/전공공부

[정보보안] 컴퓨터시스템 흐름 이해하기

728x90

컴퓨터 시스템 전체정리

CPU는 반드시 메모리(RAM, ROM)를 참조해서 데이터를 가져와야된다. 

CPU는 컴퓨터중에 가장 빠르다. 메모리는 가장 느리다. 


-> 캐시 메모리 사용(속도 맞추기 위해)

-> 용량은 메모리보다 작고 CPU보다 크지만 속도는 메모리보다 빠르고 CPU보단 느리다.

-> 메모리와 디스크사이의 속도를 조절하기 위해 중간에 두는 것이 I/O 채널(입출력장치)


CPU - 캐시메모리 - 메모리 - 디스크 길이 있어야 데이터를 보내는데 이것을 버스라 한다.


-> 위로 갈수록 속도가 빠르고 용량이 작다. 이 것을 계층형 구조라한다.


MAR(Memory address register), MBR(Memory Buffer Register), IR(Instruction register)

-> 1 + 2을 더 할때 1도 가져와야되고 + 도 가져와야되는데 이것을 읽어오는 것이 MAR이다.

MAR은 메모리에가서 데이터를 쭉 읽어옴. 읽어온 것을 MBR에 집어넣는다. + 는 명령이다. 명령하는 것은 OP CODE라 부른다. IR(Instruction register)에 집어넣는다. MBR과 IR을 읽어들여서 +를 하고 그 결과를 임시로 저장하는 곳을 ACC라고 한다. 연산이 되고 다음의 명령을 실행하는 메모리 주소를 PC(Program Counter)라고 한다. 


-> CPU안에 임시적으로 저장할 수 있는 작은 메모리를 레지스터라 한다.


CPU 가 연산을 하고 결과를 반납하는 일련의 과정을 Major State 혹은 Instruction Cycle 이라한다.


사이클 반복(CPU와 메모리사이의 일)

Fetch -> Indirect(너 여기가면 다른데로가, 한번 더 참조) -> Execution -> Interupt


캐시 메모리의 일관성

캐시메모리와 메모리가 결과값 일시적으로 다를 수 있는데 이것을 캐시 메모리의 일관성이라함

-> CPU가 캐시메모리를 바꿀 때 메모리를 바꾸는 방법(WRITE-THROUGH), CPU가 캐시메모리를 바꿀 때 캐시메모리를 바꿨다가 한번에 바꾸는 방법(WRITE-BACK)


메모리는 데이터를 DISK에서 가져옴, DISK에 있는 내용을 메모리에 올려야됨. CPU가 +,- 를하다가 어떤 값을 읽을때 메모리에 요청을 하고 메모리는 DISK에서 데이터를 읽어서 CPU에게 전달한다. 이 과정에서 CPU는 가만히 기다리고 있다. 

-> 프로그램에 의한 입출력(비효율)


CPU는 +, - 를 하다가 입출력 인터럽트가 일어날 때 순간적으로 그때만 함 

-> 입출력 인터럽트 방식


DMA제어기를 하나두고 입출력을 처리하게 해줌. DMA 제어기에 프린터기, 디스크, SSD를 연결해서 CPU가 메모리를 사용하지 않을 때 그때만 메모리에 가서 데이터를 올려주거나 내려줌

-> DMA 방식


입출력 전용 카드(CPU)를 꽂음(병렬)

-> I/O 채널


CPU는 WORD 단위이다. 1WORD(논리적) = 4BYTE(물리적) = 32BIT 컴퓨팅, CPU가 데이터 32BIT를 한꺼번에 올려서 데이터를 처리한다.


주소 체계 흐름

메모리는 물리적인 주소를 프레임이라한다.  보조기억장치중에 디스크는 섹터라하고 SSD는 천크라 부름. 가상 메모리는 디스크를 메모리처럼 사용한다는 것인데 디스크의 일부를 메모리의 주소체계를 둔다. 


주소 체계가 모두 다름.

메모리 - 프레임

가상기억장치(디스크) - 버추얼 어드레스

디스크 - 섹터


세개의 주소체계가 달라서 각각의 매핑표가 필요하다. 가상기억 장치의 메모리를 관리하기 위해서 가상의 공간을 고정길이도 두면 페이지, 때의 따라서 크기가 다른 것을 세그먼트


페이지 - 페이지 맵 테이블을 참조해서 메모리에 직접갈 수 있게함.

세그먼테이션 - 세그멘트 맵 테이블이 필요하고 각 세그먼트는 고유한 이름과 크기를 가지고 있다.