이론적인 fork() 프로세스는 기본적으로 자원을 공유하지 않는다 → 부모 프로세스가 적재된 별도의 공간에 자식 프로세스가 통째로 복제되어 적재 단점: 프로세스 생성 시간 지연, 메모리 낭비 → 이를 해결하는 쓰기 시 복사(copy on write) 1. 쓰기 시 복사 부모 프로세스와 동일한 자식 프로세스가 복제되어 생성되면, 자식 프로세스는 부모 프로세스와 동일한 프레임을 가리킴(쓰기 작업 없다면 이 상태 유지 부모 프로세스/자식 프로세스 둘 중 하나가 페이지에 쓰기 작업 수행 시 해당 페이지는 별도의 공간으로 복제 → 프로세스 생성 시간 절약, 메모리 절약 2번 페이지만 별도 공간 사용함 2. 계층적 페이징 페이지 테이블을 페이징하여 여러 단계의 페이지 페이지를 두는 방식 페이지 테이블을 여러 페이지..
페이징
연속 메모리 할당의 두 가지 문제점 외부 단편화 물리 메모리보다 큰 프로세스 실행 불가 가상 메모리 실행하고자 하는 프로그램을 일부만 메모리에 적재하여, 실제 물리 메모리 크기보다 더 큰 프로세스를 실행할 수 있게 하는 기술 페이징, 세그멘테이션 1. 페이징이란 외부 단편화가 발생했던 근본적인 문제? 각기 다른 크기의 프로세스가 메모리에 연속적으로 할당되었기 때문 그러면, 프로세스를 일정 크기로 자르고, 이를 메모리에 불연속적으로 할당할 수 있다면 어떨까? → 외부 단편화는 발생하지 않겠죠! 페이징: paging 프로세스의 논리 주소 공간을 페이지(page)라는 일정 단위로 자르고, 메모리의 물리 주소 공간을 프레임(frame)이라는 페이지와 동일한 일정한 단위로 자른 뒤 페이지를 프레임에 할당하는 가상..
연속 메모리 할당: 프로세스에 연속적인 메모리 공간을 할당 1. 스와핑 현재 사용되지 않는 프로세스들을 보조기억장치의 일부 영역으로 쫓아내고, 그렇게 생긴 빈 공간에 새 프로세스 적재 프로세스들이 요구하는 메모리 공간 크기가 실제 메모리 크기보다 큰 경우에도 프로세스들을 동시에 실행시킬 수 있음 스왑 영역의 크기 확인하는 명령어: free, top 2. 메모리 할당 프로세스는 메모리의 빈 공간에 할당되어야 한다.. 빈 공간이 여러 개 있다면? 어떤 방식으로 할당하느냐에 따라 다른 세 가지의 할당 방식: 최초 적합, 최적 적합, 최악 적합 최초 적합: first fit 운영체제가 메모리 내의 빈 공간을 순서대로 검색하다 적재할 수 있는 공간을 발견하면 그 공간에 프로세스를 배치하는 방식 검색 최소화, 빠른..