728x90
반응형
1. 휘발성 메모리
1.1 DRAM(Dynamic RAM)
- 저장된 0과 1의 데이터가 일정 시간이 지나면 사라지므로 일정 시간마다 다시 재생시켜야 한다.
1.2 SRAM(Static RAM)
- 전력이 공급되는 동안에는 데이터를 보관할 수 있어서 재생할 필요가 없다.
1.3 SDRAM(Synchronous Dynamic Random Access Memory)
- 클록틱(펄스)이 발생할 때마다 데이터를 저장하는 동기식 DRAM
2. 비휘발성 메모리
2.1 플래시 메모리(Flash Memory)
- SD 카드, USB 드라이브 같이 전력이 없어도 데이터를 보관할 수 있는 저장장치이다.
2.2 SSD(Solid State Drive)
- 빠른 데이터 접근 속도, 저전력, 내구성이 HDD보다 좋다.
3. 롬(ROM)의 종류
3.1 마스크 롬(Mask ROM)
- 데이터를 지우거나 쓸 수 없다.
3.2 PROM(Programmable ROM)
- 전용 기계를 이용하여 데이터를 한 번만 저장할 수 있다.
3.3 EPROM(Erasable Programmable ROM)
- 데이터를 여러 번 쓰고 지울 수 있다.
4. 메모리 보호
- 현대의 운영체제는 시분할 기법을 사용하여 여러 프로그램을 동시에 실행한다.
- 사용자(응용 프로그램) 영역이 여러 개의 작업 공간으로 나뉜다.
- 메모리가 보호되지 않는다면 다른 작업의 영역을 침범하게 되고 그렇게 된다면 오류가 발생하고 프로그램을 파괴하거나 데이터를 지울 수 있으며, 최악의 경우에는 운영체제 영역을 침범하여 시스템 마비도 가능하게 만든다.
5. 메모리 보호 방법
1. 작업의 메모리 시작 주소를 경계 레지스터에 저장 후 작업한다.
2. 작업이 차지하고 있는 메모리의 크기, 즉 마지막 주소까지의 차이를 한계 레지스터에 저장한다.
3. 사용자의 작업이 진행되는 동안 이 두 레지스터의 주소 범위를 벗어나는지 하드웨어적으로 점검한다.
4. 두 레지스터의 값을 벗어나면 메모리 오류와 관련된 인터럽트가 발생한다.
5. 메모리 영역을 벗어나서 발생한 인터럽트의 경우 운영체제가 해당 프로그램을 강제 종료한다.
<성능 향상 기법>
1. 버퍼(Buffer)
- 속도에 차이가 있는 두 장치 사이에서 그 차이를 완화하는 역할을 하는 장치
- 일정량의 데이터를 모아 옮김으로써 속도의 차이를 완화한다.
- 다른 말로는 큐(Queue)라고도 표현한다.
- 버퍼는 컴퓨터 안의 프로세스 사이에서 데이터를 이동시킬 때 사용된다. 보통 데이터는 키보드와 같은 입력 장치로부터 받거나 프린터와 같은 출력 장치로 내보낼 때 버퍼 안에 저장된다.
- 버퍼는 하드웨어나 소프트웨어에 추가될 수 있지만 버퍼는 상당수가 소프트웨어에 추가된다.
- 버퍼는 보통 속도가 계속 바뀔 수 있으므로 데이터 수신, 처리 속도에 차이가 있다.
2. 스풀(Spool)
- CPU와 입출력 장치가 독립적으로 동작하도록 고안된 소프트웨어적인 버퍼
- 중앙처리장치에 비해 주변장치의 처리속도가 느려서 발생하는 대기시간을 줄이기 위해 고안된 기법이다.
3. 캐시(Cache)
- 메모리와 CPU 간의 속도 차이를 완화하기 위해 메모리의 데이터를 미리 가져와 저장해두는 임시 장소이다.
- 필요한 데이터를 모아 한 번에 전달하는 버퍼의 일종으로 CPU가 앞으로 사용될 것으로 예상되는 데이터를 미리 가져다 놓는다.
- CPU가 특정 메모리 주소에 접근할 때, 캐시에 해당 데이터가 있으면 그 데이터가 바로 사용된다.
4. 캐시 히트(Cache Hit)
- 캐시에 원하는 데이터를 찾음
- 그 데이터를 바로 사용
5. 캐시 미스(Cache Miss)
- 원하는 데이터가 캐시에 없을 때 메모리로 가서 데이터를 갖고 온다.
6. 캐시 적중률(Cache Hit Ratio)
- 캐시 히트가 되는 비율
- 캐시 적중률이 높을 수록 더 빠른 처리가 가능하다.
7. 즉시 쓰기(Write Through)
- 캐시의 데이터가 변경되면 이를 즉시 메모리에 반영
- 메모리와의 빈번한 데이터 전송 -> 성능 저하 발생
- 메모리에 최신 값이 유지되는 장점이 있다.
8. 자연 쓰기(Write Back)
- 주기적으로 변경된 내용을 메모리에 반영
- 카피백(Copy Back)이라고도 한다.
- 메모리와의 데이터 전송 횟수가 줄어들어 시스템의 성능이 향상 된다.
- 메모리와 캐시 데이터 사이의 데이터 불일치 가능성이 존재한다.
9. L1 캐시와 L2 캐시
9.1 일반 캐시
- 명령어와 데이터의 구분 없이 모든 자료를 가져온다.
- 메모리와 연결되기 때문에 L2(Level 2) 캐시라고 부른다.
9.2 특수 캐시
- 명령어와 데이터를 구분하여 가져온다.
- CPU 레지스터에 직접 연결되기 때문에 L1(Level 1) 캐시라고 부른다.
9.3 저장장치의 계층 구조
개념
- 용량이 작고 빠른 저장장치를 CPU 가까운 쪽에 배치한다.
- 용량이 크고 느린 저장장치를 반대쪽에 배치한다.
- 효율적인 가격에 적당한 속도와 용량을 동시에 얻는 방법
이점
- CPU와 가까운 쪽에 레지스터나 캐시를 배치 -> CPU가 작업을 빨리 진행
- 메모리에서 작업한 내용을 하드디스크와 같이 저렴하고 용량이 큰 저장장치에 영구적으로 저장할 수 있다.
<인터럽트>
- 입출력 관리자가 CPU에 보내는 이벤트 신호
1. 폴링 방식(Polling)
- CPU가 직접 입출력 장치에서 데이터를 가져오거나 내보내는 방식
- CPU가 입출력 장치의 상태를 주기적으로 검사
- 일정한 조건을 만족할 때 데이터를 처리
- 반복적인 모니터링 작업으로 인해 작업 효율이 떨어짐
2. 인터럽트 방식(Interrupt)
- 입출력 관리자가 대신 입출력을 해주는 방식
- CPU의 작업과 저장장치의 데이터 이동을 독립적으로 운영
- 시스템의 효율을 높임
- 데이터의 입출력이 이루어지는 동안 CPU가 다른 작업을 할 수 있다.
3. 인터럽트 번호
- 많은 주변장치 중 어떤 것에 이벤트가 발생되었는지를 CPU에 알려주기 위해 사용하는 번호
- 윈도우 운영체제에서는 IRQ라고 부른다.
4. 인터럽트 벡터
- 여러 개의 입출력 작업을 한꺼번에 처리하기 위해 여러 개의 인터럽트를 하나의 배열로 만든 것
5. 인터럽트 방식의 동작 과정
1. CPU가 입출력 관리자에게 입출력 명령을 보낸다.
2. 입출력 관리자는 명령받은 데이터를 메모리에 가져다 놓거나 메모리에 있는 데이터를 저장장치로 옮긴다.
3. 데이터 전송이 완료되면 입출력 관리자는 완료 신호를 CPU에 보낸다.
6. 직접 메모리 접근(DMA: Direct Memory Access)
- 입출력 관리자가 CPU의 허락 없이 메모리에 접근할 수 있는 권한
- 메모리는 CPU의 작업 공간이지만, 데이터 전송을 지시받은 입출력 관리자는 직접 메모리 접근 권한이 있어야만 작업을 처리할 수 있다.
728x90
반응형
'CS > 운영체제' 카테고리의 다른 글
[운영체제] 프로세스의 메모리 구조 (0) | 2023.05.17 |
---|---|
[운영체제] 프로세스와 스레드 (0) | 2023.05.14 |
[운영체제] 메모리 (1) (0) | 2023.04.16 |
[운영체제] 운영체제 구조와 종류 (0) | 2023.03.17 |
[운영체제] 운영체제 정의와 역할 (0) | 2023.03.01 |