CS 공부
메모리 본문
메모리(Memory)
기억장치의 계층구조
1) 레지스터(CPU)
CPU 내에 고속의 기억 장치로 CPU 동작에 필요 내용을 기억한다.
레지스터는 기억 장치 중에 가장 빠르다.
캐시 기억장치와 주기억장치는 직접 참조가 가능하다.
보조 기억 장치는 직접 참조할 수 없다.
2) 캐시 기억장치 (캐시 메모리)
- 버퍼를 체계화하고 독립적으로 구성시킨 장치
CPU에 명령어와 데이터를 빠르게 제공하기 위해 주기억장치에 저장되어있는 명령어와 데이터 일부를 복사해서 임시로 저장하는 장치
주기억장치보다 명령어와 데이터를 저장하고 인출하는 속도가 빠름
빠르게 동작하는 CPU와 느리게 동작하는 주기억장치 사이에서 속도 차이를 줄여주는 완충제 역할을 하는 기억장치
CPU는 주기억장치에 접근하기 전에 캐시 기억장치를 먼저확인
3) 주 기억장치 (메인 메모리)
- 메인 메모리는 CPU가 직접 접근할 수 있는 접근 장치
- 프로세스가 실행되려면 프로그램이 메모리에 올라와야 함
- 메모리는 각각 주소가 할당된 일련의 워드 또는 바이트들로 구성
물리적으로 연속적인 공간
주기억 장치의 분할 영역, 프로그램이 적재되는 위치, 프로그램이 시작되는 위치등을 CPU내에 레지스터가 기억하고 있다.
주기억 장치 관리 레지스터
경계 레지스터(Boundary Register)
사용자 영역에 존재하는 프로그램이 운영체제 영역을 침범하지 못 하도록 함
차폐 레지스터(Fence Register)
분할된 영역을 다른 프로그램이 사용하지 못 하도록 분할 영역의 위치(주소)를 기억한다.
베이스 레지스터(Base Register)
주기억 장치에 적재된 프로그램의 시작 위치를 기억하고 있다.
재배치 레지스터(Relocation Register)
프로그램이 한 영역에서 다른 영역으로 옮겨지더라도 명령의 주소부분을 바꾸지 않고 정상적으로 실행될 수 있도록 한다.
4) 보조 기억장치
주기억장치의 단점을 보완하기 위한 기억장치
보조 기억장치는 주 기억장치에 비해 속도는 느리지만 전원이 차단되어도 내용이 그대로 유지되고 저장용량이 크다
CPU와 직접 자료 교환이 불가능하다.
접근시간이 오래걸린다.
기본적인 동작과정
1. 보조 기억장치에 있는 프로그램이나 데이터가 실행에 의해서 주 기억장치로 적재
2. 적재된 프로그램이나 데이터는 CPU에서 가져와 레지스터에 기억시킨 후 연산장치를 통해 연산하거나 제어를 하게된다.
특징
프로그램이나 데이터들은 보조 기억 장치 , 주기억장치를 통해 CPU내의 레지스터로 이동이 되는과정에서 속도의 차이가 발생한다.
이러한 속도차를 캐시(캐시 기억장치), 버퍼(주 기억장치), 스풀 영역(보조 기억장치)을 두어 극복하게 된다.
스풀
보조 기억 장치에서 주 기억장치로 프로그램이나 데이터가 적재되는 과정에서 발생하는 속도차이를 보조 기억장치가 중재
버퍼
주기억 장치에서 CPU로 적재되는 과정에서 발생하는 속도 차이를 주기억 장치가 중재하는 장치이다.
캐시
버퍼를 체계화하고 독립적으로 구성시킨 장치가 캐시 기억장치
기억 장치 사용방식
운영체제는 주 기억 장치를 분할하여 여러 개의 프로그램을 적재하는 방식 사용
주 기억장치보다 큰 프로그램을 실행하기 위해서 보조 기억장치를 주기억장치처럼 사용하는 가상 기억 장치 기술
-> CPU 이용률을 극대화하는 방법 들
기억장치 사용방식의 분류
주 기억 장치-단일 프로그래밍
하나의 프로그램을 주기억 장치에 적재하여 운영
주 기억 장치-다중 프로그래밍
여러 개의 프로그램을 주기억 장치에 적재하여 운영하는 방식
주기억 장치의 분할이 필요하다
분할 방법
1) 고정 분할 할당 기법
- 주 기억장치의 크기를 다르게 분할하되 항상 고정된 크기를 가짐
- 외부 내부 단편화가 발생
프로그램이 주어진 분할 안에 다 들어갈 수 없는 경우 발생
프로그램이 실행되기 위해서 프로그램 전체가 주기억 장치에 있어야함
단편화가 많아 효율성이 낮다
분할 된 최대 영역보다 큰 프로그램은 적재 불가
2) 가변 분할 할당 기법
프로그램의 크기에 따라 주기억 장치 분할 크기를 동적으로 분할 하는 방식
미리 크기를 결정하지 않고 실행할 프로세스 크기에 맞게 기억 장소를 분할
외부 단편화만 존재
기억 장소 활용률이 높다
고정 분할 방식에 비해 실행될 프로세스 크기에 대한 제약이 완화
주기억 장치의 크기를 넘지 않는 범위에서 큰 프로그램을 적재가능
보조 기억 장치-단일 프로그래밍
하나의 프로그램을 적재하여 사용하지 않으므로 의미가 없는 방식
보조 기억 장치-다중 프로그래밍
- 보조 기억 장치를 주기억 장치처럼 사용하여 여러개의 프로그램을 주기억 장치에 적재하여 운영하는 방식
- 보조 기억 장치에 있는 프로그램 파일의 분할이 필요
가상 기억 장치 기술을 이용
주 기억 장치와 가상 기억 장치의 연동에 페이징 기법이 이용된다.
가상 기억 장치 기술
사용하지 않는 프로그램을 외부 기억장치로 옮김으로써 주기억장치의 실제 크기보다 큰 프로그램ㅇ을 실행할 수 있게하는 기억장치
가상 기억 장치는 주기억 장치 안의 프로그램 양이 많아질 때 사용하지 않는 프로그램을 보조 기억 장치 안의 특별한 영역으로 옮겨서 보조 기억장치 일부분을 주기억 장치처럼 사용할 수 있다.
프로그램을 여러 개의 작은 블록단위로 나누어서 가상 기억 장치에 보관해 놓고 프로그램 실행 시 요구되는 블록만 주 기억 장치에 불연속적으로 할당하여 처리한다.
가상 메모리는 디스크와 같은 보조 기억 장치에 가상의 공간을 만들어 주기억 장치처럼 활용하도록 하여 실제 주기억장치의 물리적 공간보다 큰 주소 공간을 제공한다.
'CS공부 > 운영체제' 카테고리의 다른 글
주기억 장치 관리 전략(페이지 반입, 배치, 교체 전략) (0) | 2021.07.16 |
---|---|
세그먼테이션 (0) | 2021.07.16 |
페이징(외부 단편화, 내부 단편화, TLB) (0) | 2021.07.15 |
경쟁 상태와 세마포어,뮤텍스 (0) | 2021.07.12 |
데드락(DeadLock) (0) | 2021.07.12 |