일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- Brute Force
- paging
- samsung research
- 완전탐색
- 삼성기출
- dfs
- 동기화문제
- 스케줄링
- 데드락
- Memory Management
- 구현
- ascii_easy
- 시뮬레이션
- segmentation
- 삼성리서치
- 가상메모리
- higunnew
- 백준
- Deadlock
- pwnable.kr
- exec
- 프로세스
- 컴공복전
- BFS
- 운영체제
- 알고리즘
- 백트래킹
- 김건우
- fork
- BOJ
- Today
- Total
목록segmentation (3)
gunnew의 잡설
- Segmentation 세그먼테이션 기법은 프로세스가 구성하는 주소 공간을 의미 단위로 (Code, Data, Stack,...)으로 쪼갠 것이다. 작게는 프로그램을 구성하는 함수 하나하나를 세그먼트로 정의할 수 있고 크게는 프로그램 전체를 하나의 세그먼트로 정의 가능하다. 일반적으로는 당연히 Code, Data, Stack 부분이 하나씩의 세그먼트로 정의된다. Segment는 다음과 같은 logical unit들이다. 즉, 다음과 같은 것들이 Segment가 될 수 있다는 것이다. ex) main(), function, global variables, stack, symbol table, arrays * Segmentation Architecture (세그먼테이션에서 주소 변환) * 이 기법에서 L..
물론 Page Table을 2단계만 사용할 수 있는 건 아니다. 다단계로 사용할 수 있다. 프로세스의 주소 공간은 매우 클 수 있기 때문에 Address Space가 더 커지면 다단계 페이지 테이블이 필요하다. 그것을 Multilevel Paging이라고 한다. 그렇지만 한 번 주소변환을 하려면 여러 개의 페이지 테이블을 거쳐야 하며, 4단계 페이지 테이블의 경우 5번의 메모리 접근이 필요하다(4번은 주소 변환, 1번은 실제 데이터 접근). 예를 들어 메모리 접근 시간이 100ns라면 500ns가 소요될 것이다. 하지만 전 시간에 배운 TLB(Translation Look-aside Buffer)를 이용하면, 대부분의 주소 변환 시간 동안 TLB에서 이루어지기 때문에 그 소요가 적다. TLB hit ra..
메모리에 접근하기 위해서는 주소가 필요하다. 주소에는 Logical address ( or Virtual address)와 Physical address가 있다. 프로세스가 만들어지면 독자적인 주소 공간 (Address space)가 만들어진다고 했는데 그때 사용되는 것이 논리적 주소이다. 또한 각 프로세스마다 0번지부터 시작하며 CPU는 이 주소를 활용한다. 반면 물리적 주소는 말 그대로 Memory에서 물리적으로 접근할 수 있는 주소로 메모리에 실제 올라가는 위치를 뜻한다. 결국 프로세스가 실행되기 위해서는 메모리에 프로세스가 올라가야 하고, 논리적 주소가 물리적 주소로 바뀌어 처리되어야 하는데 이것을 '주소 변환'이라 하며 '주소 바인딩'이라고도 한다. * Symbolic Address * 우리가 ..