컴퓨터는 어떻게 프로그램과 메모리를 조직적으로 관리할까
기본적인 구조 요소들
- 프로세스 코어
- CPU(코어)
- 마이크로프로세서와 마이크로컴퓨터
- 마이크로프로세서: 메모리와 I/O가 프로세서 코어와 같은 패키지에 들어 있지 않는 프로세서
- 마이크로컴퓨터: 모든 요소를 한 칩안에 패키징
프로시저, 서브루틴, 함수
- 함수/프로시저/서브루틴: 코드를 재사용하는 주요 수단
- 함수로 들어간 위치가 바로 프로그램 카운터의 값
스택
- 재귀 함수가 제대로 작동하기 위해서는 반환 주소를 여럿 지정할 수 있어야 함
- DFS
- BFS
인터럽트
- 순서도는 작업이 이뤄지는 순서를 표현하는 다이어그램
- 실행 중인 프로그램을 잠깐 중단 (interrupt)
- 적절한 신호가 들어오면 CPU 실행을 잠깐 중단
- 현재 실행 중인 프로그램을 잠시 중단시키고 interrupt handler 실행 시작
- 고려사항
- 응답 시간을 고려해서 인터럽트를 정해진 시간 안에 끝내야 함
- 인터럽트를 서비스하고 나중에 다시 돌아오기 위해 현재 상태를 저장할 방법 필요
- 인터럽트 벡터는 메모리 위치를 가리키는 포인터 (인터럽트 핸들러 주소 저장하는 메모리 주소)
상대 주소 지정
- 상대 주소 지정을 이용하면 프로그램을 메모리의 원하는 위치로 자유롭게 재배치 가능
메모리 관리 장치
- MMU (Memory Management Unit)
- 프로그램은 가상 주소를 사용해 작성되고, MMU는 가상 주소를 물리 주소로 변환
- 여러 프로그램의 가상 메모리 중 일부가 같은 물리 메모리를 함께 사용하는
공유 메모리 기능 제공 가능
가상 메모리
- OS는 MMU를 사용해 사용자 프로그램에게 가상 메모리 제공
- 요청 받은 메모리가 사용 가능한 메모리의 크기보다 크면 OS가 디스크로 옮김 (Swap Out)
- 반대 과정은 Swap In
시스템 공간과 사용자 공간
- 트랩이나 시스템 콜이라고 부르는 특별한 명령어를 통해
사용자 모드에서 실행 중인 프로그램이 시스템 모드 프로그램(운영체제)에게 요청을 보낼 수 있음
메모리 계층과 성능
- 캐시 메모리
코프로세서
- 직접 메모리 접근 (DMA): 데이터 복사만 담당
메모리상의 데이터 배치
- 스택은 아래로, 힙은 위쪽으로 쌓이고 충돌을 방지하도록 메모리 배치 중요
프로그램 실행
- MMU가 여러 프로그램이 같은 라이브러리를 공유할 수 있도록 해줌
- 실제로는 런타임 라이브러리에 있는 명령어가 먼저 실행되고
나중에 엔트리 포인트의 명령어가 실행됨
메모리 전력 소비
- 데이터를 메모리에서 이리저리 옮기면 전력 소비 발생
- 모바일 장치에서 전력 소비 이슈가 중요
정리
'Books > 한 권 컴퓨터 구조와 프로그래밍 ✔️' 카테고리의 다른 글
[한 권 컴퓨터 구조와 프로그래밍] 7장 - 데이터 구조와 처리 (0) | 2022.08.11 |
---|---|
[한 권 컴퓨터 구조와 프로그래밍] 6장 - 입출력과 네트워킹 (0) | 2022.08.11 |
[한 권 컴퓨터 구조와 프로그래밍] 4장 - 컴퓨터 내부 구조 (0) | 2022.08.11 |
[한 권 컴퓨터 구조와 프로그래밍] 3장 - 메모리와 디스크의 핵심: 순차 논리 (0) | 2022.08.11 |
[한 권 컴퓨터 구조와 프로그래밍] 2장 - 전자 회로의 조합 논리 (0) | 2022.07.18 |
댓글