티스토리 뷰
- 프로세스와 메모리
- 프로세스의 동작
- 프로그램 카운터를 참조하여 메모리로부터 수행될 명령을 읽어 CPU의 해당 명령을 수행
- 프로세스의 동작
- 기억장치 계층구조
- 적절한 비용으로 높은 성능을 낼 수 있도록 계층적으로 구성
- CPU(레지스터 <-> 캐시 기억장치 <-> 메모리 <-> 보조기억장치
- CPU쪽으로 갈수록 접근속도가 빠름, 비트당 기억장치 비용이 높음
- 보조기억장치쪽으로 갈수록 대용량
- 적절한 비용으로 높은 성능을 낼 수 있도록 계층적으로 구성
- 메모리 관리
- 메모리 호출
- 언제 새로운 프로세스를 메모리에 둘 것인가?
- 메모리 배치
- 실행될 프로세스를 메모리 내의 어느 곳에 둘 것인가?
- 메모리 교체
- 메모리가 꽉 찬 상태에서 새로운 프로세스를 적재해야 한다면 어떤 프로세스를 제거할 것인가?
- 그 외
- 메모리를 고정 분할할 것인가 동적 분할할 것인가?
- 프로세스의 적재 영역이 고정적인가 유동적인가?
- 메모리 호출
- 단일 프로그래밍 환경
- 초기의 시스템
- 오직 하나의 프로세스만 메모리를 전용으로 사용
- 프로세스는 하나의 연속된 블록으로 메모리에 할당(연속 메모리 할당)
- 문제점
- 메모리의 용량을 초과하는 프로세스는 실행 불가
- 메모리 낭비
- 당장 사용되지 않는 프로세스의 영역도 계속 적재
- 자원의 낭비
- 계산 위주의 사용자 프로그램
- 초기의 시스템
- 다중 프로그래밍 환경
- 다중 프로그래밍(멀티프로그래밍)
- 여러 개의 프로세스가 메모리에 동시에 적재되는 것
- CPU연산과 입출력을 동시에 함으로써 CPU이용도와 시스템 처리량 증가
- 메모리 분할
- 여러 프로세스를 메모리에 적재하기 위하여 고안된 방법
- 하나의 분할에 하나의 프로세스가 적재
- 고정 분할
- 메모리를 여러 개의 고정된 크기의 영역으로 분할
- 프로세스 배치 방법 1
- 분할1(5MB), 분할2(20MB), 분할3(100MB)...
- 분할 영역마다 큐를 두고 큐에 들어온 프로세스는 해당 분할 영역에만 적재
- 절대 번역 및 적재
- 효율성 낮음
- 프로세스 배치 방법 2
- 하나의 큐만 두고 큐에 들어온 프로세스는 어느 분할 영역에든 적재
- 재배치 가능 번역 및 적재
- 복잡함
- 문제점: 내부 단편화
- 프로세스의 크기가 적재된 분할 영역의 크기보다 작아서 분할 영역 내에 남게 되는 메모리는 낭비됨
- 프로세스의 크기를 미리 알고 그에 맞춰 고정 분할을 해야함
- 현실적이지 못함
- 동적 분할
- 메모리의 분할 경계가 고정되지 않음
- 각 프로세스에게 필요한 만큼의 메모리만을 할당
- 문제점: 외부 단편화
- 메모리의 할당과 반환이 반복됨에 따라 작은 크기의 공백이 메모리 공간에 흩어져 생김
- 메모리 분할
- 외부 단편화 해결 방법
- 통합: 일접된 공백을 더 큰 하나의 공백으로 만듦
- 집약: 메모리 내의 모든 공백을 하나로 모음
- 외부 단편화 해결 방법
- 메모리 보호
- 여러 프로세스가 동시에 메모리에 상주하므로 프로세스가 다른 할당영역을 침범하지 않게 하는 것
- CPU에 하한과 상한 레지스터를 줌
- 메모리 배치
- 메모리 배치기법
- 새로 반입된 프로그램이나 데이터를 메모리의 어느 위치에 배치할 것인가를 결정
- 최초 적합
- 프로세스가 적재될 수 있는 빈 공간 중에서 가장 먼저 발견되는 곳을 할당
- 후속 적합
- 최초 적합의 변형으로 이전에 탐색이 끝난 그 다음 부분부터 시작
- 최적 적합
- 필요한 공간을 제공할 수 있는 빈 공간 중에서 가장 작은 곳을 선택하여 할당
- 최악 적합
- 필요한 공간을 제공할 수 있는 빈 공간 중에서 가장 큰 곳을 선택하여 할당
- 메모리 배치기법
- 다중 프로그래밍(멀티프로그래밍)
'운영체제' 카테고리의 다른 글
[운영체제] 페이지 교체 (0) | 2021.05.04 |
---|---|
[운영체제] 가상메모리 (0) | 2021.05.03 |
[운영체제] 교착상태 (0) | 2021.04.15 |
[운영체제] 교착상태 (0) | 2021.04.07 |
[운영체제] 병행프로세스 (2) (0) | 2021.04.02 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 병행프로세스
- Java
- stackframe
- BFS
- 알고리즘
- 교착상태
- 스텍
- 배열
- Stack
- 인접리스트
- 동적프로그래밍
- 이진탐색
- C
- 운영체제
- server side rendering
- 인접행렬
- C++
- 소프트웨어
- react
- 구조체
- 퀵정렬
- dfs
- 자료구조
- client side rendering
- javascript
- 입출력장치
- 재귀함수
- 세마포어
- 최단경로
- 클래스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함