목록대학교 공부 (4)
개발 공부
: 물리 메모리보다 큰 프로세스를 실행시 물리 메모리 크기 한계를 극복하기 위해 사용 어떻게 사용? - 프로세스 이미지를 모두 메모리에 올릴 필요는 없음 - 현재 실행에 필요한 부분만 메모리에 올린다. - 오류처리 제외, 배열 일부 제외, 워드 프로세스에서 정렬, 표 기능 제외 >> 동적 적재(dynamic loading)과 비슷한 개념 ● Demand Paging - 프로세스 이미지는 backing store(H/W)에 저장 - 프로세스는 페이지의 집합 - 지금 필요한 페이지만 메모리에 올린다.(load) >>요구되는(demand) 페이지만 메모리에 올린다. ● 하드웨어 지원 - valid비트 추가된 페이지 테이블 : 메모리에 없으면 0, 있으면 1 - backing store (= swap devic..
●프로세스를 논리적 내용(=세그멘트)로 잘라서 메모리에 배치 -프로세스는 세그먼트의 집합 - 세그멘트의 크기는 일반적으로 같지 않다. ●세그멘트를 메모리에 할당 MMU 내의 재배치 레지스터 값을 바꿈으로써 CPU는 프로세스가 연속된 메모리 공간에 위치한다고 착각 MMU는 세그먼트 테이블이 된다. 주소변환 ●논리주소 : CPU가 내는 주소는 세그멘트 번호(s) + 변위(d) ● 주소변환 : 논리 주소 -> 물리주소 - 세그멘트 테이블 내용 : base + limit - 세그멘트 번호(s)는 세그멘트 테이블 인덱스 값 - s에 해당되는 테이블 내용으로 시작 위치 및 한계값 파악 - 한계(limit)을 넘어서면 segment violation 예외상황 처리 - 물리주소 = base[s] + d Limit Ba..
:프로세스를 일정 크기인 페이지로 잘라서 메모리에 적재하는 방식 *메모리에 올라온 프로그램은 연속되어야 실행이 됨.. * 그렇다면 잘라서도 프로그램이 돌려면 어떻게 해야할까? >> CPU를 속이면 된다. CPU를 속이려면? -MMU에 다수의 relocation register(재배치 레지스터)를 두어 CPU가 보낸 주소에 재할당 주소를 추가해 조각난 프로세스를 조각난 메모리에 일정 단위별로 할당해서 프로세스를 돌린다. 정리 프로세스를 자르는 단위는 페이지(page) 동일한 크기로 메모리를 자른것이 프레임(frame) >>페이지(프로세스)를 프레임(메모리)에 할당 MMU내의 재배치 레지스터의 값을 바꿈으로써 CPU는 프로세스가 연속된 메모리 공간에 위치한다고 착각을 함 MMU는 페이지 테이블(page ta..
메모리 용량 증가 vs 프로그램 크기 증가 1960~1970년대는 프로그램을 기계어로 작성했는데 C,C++,자바... 객체지형적인 언어가 개발되고 작성해서 메모리양이 엄청 커지게 되었습니다. >>늘 언제나 부족한 메모리 메모리를 효과적으로 사용하기 위한 방법 1. 메모리 낭비 없애기 2. 가상 메모리 (virtual memory) 프로그램을 메모리에 올리기 ● 메모리의 구조 주소(address) + 데이터(Data) CPU가 메모리의 어디를 읽겠다고 Address를 메모리에 보냄 (메모리 입력은 주소) 메모리는 해당위치의 저장 데이터를 cpu에 보냄 (메모리 출력은 데이터) >> 메모리 주소= 주소+데이터 ● 프로그램 개발 소스파일 - (컴파일러, 어셈블러) >> 목적파일 - (링크) >> 실행파일 >>..