일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 객체
- 객체지향 프로그래밍
- 인스턴스
- 인스턴스화
- 항해99장점
- 클래스
- IoC
- inversion of control
- DI
- 스레드
- process
- API
- 항해99단점
- jwt
- 부트캠프추천
- 오브젝트
- object
- 회고록
- class
- bean
- Thread
- jvm
- 프로세스
- Instance
- 소셜
- social login
- 항해99솔직후기
- 소셜로그인
- Dependency Injection
- 쓰레드
- Today
- Total
로운's 기술노트
5장. 컴퓨터 아키텍처와 운영체제 본문
■ 가상 메모리
운영체제(OS)는 하드웨어 자원을 사용하는 프로그램의 자원 분배를 관리한다. 메모리 역시 OS가 관리하는 자원이다. OS는 *MMU를 사용해서 사용자 프로그램에게 가상 메모리(Virtual Memory)를 제공한다.
* MMU (Memory Management Unit)란?
: CPU코어 안에 탑재되어 가상 주소를 실제 메모리 주소로 변환해주는 장치
요청받은 메모리가 사용 가능한 메모리보다 클 경우, OS는 현재 필요하지 않은 메모리 페이지를 디스크로 옮기며 이를 스왑 아웃(Swap-Out)이라 한다. 이후 스왑 아웃한 페이지에 프로그램이 접근할 경우, OS는 필요한 메모리 공간을 확보하고 요청받은 페이지를 다시 메모리로 불러들이는데 이것을 스왑 인(Swap-In)이라 부른다. 이러한 처리 방식들을 '요구 페이징(Demand Paging)'이라고 한다.
ㅇ 요구 페이징(Demand Paging)의 장점
- 물리 메모리 공간에 대한 제약이 없어진다.
- 프로그램을 메모리에 올리고 스왑하는데 필요한 입출력 횟수가 줄어들기 때문에 보다 빠르게 실행된다.
- 사용자 프로그램이 적은 물리 메모리를 차지하기 때문에 많은 프로그램 동시 수행이 가능하다. (응답시간 대비 CPU이용률과 처리율이 증가)
■ 시스템 공간과 사용자 공간
CPU에는 컴퓨터가 시스템 모드에 있는지 사용자 모드에 있는지 결정하는 비트가 어떤 레지스터 안에 들어있다. *I/O를 처리하는 명령어 중 일부 명령어는 특권(Privileged)명령어라서 오직 시스템 모드에서만 실행할 수 있다. 트랩(Trap)이나 시스템 콜(System Call)이라는 특별한 명령어를 통해 사용자 모드에서 실행 중인 프로그램이 시스템 모드 프로그램(OS)에게 요청을 보낼 수 있다.
* I/O란?
: 입력(Input)/출력(Output)의 약자로, 컴퓨터 및 주변장치에 대하여 데이터를 전송하는 프로그램, 운영 혹은 장치
■ 메모리 계층과 성능
프로그램이 실행되는 동안에 메모리가 하는 역할은 데이터의 입력과 출력입니다. 따라서 기본적인 역할은 모든 메모리가 동일하며, 그 대상이 레지스터이건 하드디스크이건 같습니다.
이 메모리들은 어떤 차이를 가지고 있을까요? 결국 'CPU를 기준으로 얼마나 멀리 떨어져 있느냐'라는 점입니다.
CPU와 가까이 위치할수록 속도가 빠르고, 멀수록 느립니다. 레지스터는 CPU 안에 있기 때문에 별다른 절차가 필요하지 않습니다. 그러나 메인 메모리에 접근하기 위해서는 몇몇 복잡한 과정을 거쳐야 합니다.
그렇다면 모든 메모리가 하는 일이 똑같고, CPU 근처에 있을수록 빠르다면 굳이 하드디스크와 같이 느린 메모리를 사용하는 이유는 뭘까요? 이 부분은 기술과 비용의 문제입니다. CPU 근처로 대용량의 메모리를 가져 갈수록 기술적인 문제들도 발생하고 비용도 훨씬 많이 든다고 합니다.
ㅇ 레지스터
- CPU 안에 내장되었으며, 연산을 위한 저장소를 제공합니다.
ㅇ 캐시
- 캐시는 D램보다 빠른 S램으로 구성하는데, 램은 메인 메모리를 의미하는 용도로 사용되므로, 캐시 메모리는 그냥 캐시라고 합니다. 캐시는 CPU와 램 사이에서 중간 저장소 역할을 하는 메모리입니다. 그리고 캐시 메모리는 원래 CPU의 일부로 존재하는 메모리 개념이 아닌, CPU에 근접해 있는 메모리의 개념입니다.
ㅇ 메인 메모리
- 가장 먼저 떠올릴 수 있는 것은 메인 메모리인 램입니다. 보다 정확히 말하면 D램 계열의 메모리입니다. 참고로 메인 메모리가 반드시 램이어야 할 이유는 없습니다. 따라서 메인 메모리와 램에는 등호 관계가 성립하지 않습니다. 그러나 거의 모든 컴퓨터가 메인 메모리로 램을 사용하므로 메인 메모리와 램을 동일한 의미로 사용됩니다.
ㅇ 하드디스크 (대용량 저장장치)
- 하드디스크도 당연히 메모리입니다. 하드디스크는 크고 작은 파일들을 저장하기 위한 용도로도 사용되지만, 프로그램 실행에 있어서도 중요한 의미를 지닙니다. 그리고 그 밖에 SD카드, CD-ROM과 같은 I/O 장치들도 메모리에 해당합니다.
[출처]
https://jhnyang.tistory.com/103
https://jeongmorecord.tistory.com/99
http://joyeeeeeee.blogspot.com/2018/03/system.html
'항해99_'22.01~04 > Computer Science' 카테고리의 다른 글
9장. 웹 브라우저 (0) | 2022.02.21 |
---|---|
8장. 프로그래밍 언어 처리 (0) | 2022.02.13 |
7장. 데이터 구조와 처리 (0) | 2022.02.07 |
2장. 전자 회로의 조합 논리_ 디지털 컴퓨터의 사례 (0) | 2022.01.23 |