일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 파이썬
- Virtual Memory
- 알고리즘
- 코테
- 재귀함수
- 브루트포스
- backtracking
- Loss
- 완전탐색
- 재귀
- 정렬
- Algorithm
- sort
- two pointer
- 머신러닝
- 백준
- ML
- BF
- Python
- OS
- 투포인터
- 1일1솔
- 프로그래머스
- CS
- dfs
- 신나는함수실행
- python3
- Github
- 코딩테스트
- 백트래킹
Archives
- Today
- Total
이것저것 공부 기록하기
[OS] 세그멘테이션(Segmentation) 본문
Segmentation 기법
- 가상 메모리를 서로 크기가 다른 논리적 단위인 세그먼트(Segment)로 분할
- 페이징 기법에서는 가상 메모리를 같은 크기의 블럭으로 분할
- ex) x86 리얼모드
- CS(Code Segment), DS(Data Segment), SS(Stack Segment), ES(Extra Segment)로 세그먼트를 나누어 메모리 접근
- 세그먼트 가상주소
- v = (s,d): s는 세그먼트 번호, d는 블럭 내 세그먼트의 offset(변위)
- 물리주소 계산방식은 페이징 시스템과 동일
Segmentation과 Paging Process 비교
- 세그멘테이션은 크기가 다른 segment 단위별로 물리 메모리에 로딩
- 페이징은 스택이든 힙이든 공유라이브러리든 이런 거 상관없이 그냥 일괄적으로 4KB씩 쪼개서 물리 메모리에 로딩
단편화
- 내부 단편화(페이징 기법)
- 페이지는 고정된 크기를 갖기 때문에 페이지 블럭만큼 데이터가 딱 맞게 채워져있지 않을 때 공간 낭비됨
- 외부 단편화(세그멘테이션 기법)
- 물리 메모리가 원하는 연속된 크기의 메모리를 제공해주지 못하는 경우 발생
- 세그멘테이션이랑 페이징 모두 하드웨어 지원 필요
- 다양한 컴퓨터 시스템에 이식성을 중요시하는 리눅스는 페이징 기법을 기반으로 구현(유닉스 계열 시스템들은 intel CPU 뿐 아니라 ARM 등 다양한 CPU를 지원하는데 일부 CPU들은 페이징 기법만 지원하기 때문)
- 다양한 컴퓨터 시스템에 이식성을 중요시하는 리눅스는 페이징 기법을 기반으로 구현(유닉스 계열 시스템들은 intel CPU 뿐 아니라 ARM 등 다양한 CPU를 지원하는데 일부 CPU들은 페이징 기법만 지원하기 때문)
References
fastcampus 컴퓨터공학 올인원 패키지
쉽게 배우는 운영체제
반응형
'CS > OS' 카테고리의 다른 글
[OS] 페이징 시스템(Paging System) (0) | 2021.05.19 |
---|---|
[OS] 가상 메모리 기본 개념 (0) | 2021.05.17 |
[OS] 프로세스와 기본 스케쥴링 알고리즘 (0) | 2021.05.09 |
Comments