외,내부 단편화 & Context Switching

송해광·2022년 10월 10일
0

OS

목록 보기
8/8


각 작업에 할당할 수 있는 메모리 공간이 있는데 프로세스가 해당 메모리 공간보다 작을 때 ( 위 그림에서는 10M의 공간이 있는데 7M의 프로세스가 들어온다는 가정) 메모리 공간이 남는다.

=> 내부 단편화!!

이런 남는 공간들은 대부분 공간이 작아 다른 프로세스가 들어가지 못해서 메모리 낭비가 발생


메모리에 남아있는 공간은 10M + 10M (= 20M)인데 메모리 할당이 필요한 프로세스는 15M을 필요로 한다. 즉, 작업보다 많은 공간이 남아 있더라도 실제로 그 작업을 받아 들이지 못하는 경우

=> 외부 단편화!!

메모리 단편화 해결 방안

1. 압축(COMPACTION) : 주기적으로 삭제 공간을 회수하여 메모리 공간을 정리. 비용이 많이 들어 정해진 주기에만 실행

2. 통합(Coalescing) : 단편화로 인해 쪼개진 공간들 중 인접한 공간을 합쳐서 크게 만드는 방법

3. 배치 전략 : best-fit, first-fit, worst-fit

4. paging 기법 : 고정 길이 방식의 대표 유형

참고자료 : https://nevertheless-intheworld.tistory.com/8

Context Switching

개념 : 멀티프로세스 환경에서 CPU가 어떤 하나의 프로세스를 실행하고 있는 상태에서 인터럽트 요청에 의해 다음 우선 순위의 프로세스가 실행되어야 할 때 현재 진행하고 있는 Task(Process, Thread)의 상태를 저장하고 다음 진행할 Task의 상태 값을 읽어 프로세스를 교체하는 작업

진행과정

Task의 대부분 정보는 Register에 저장되고 PCB(Process Control Block)로 관리되고 있습니다.

현재 실행하고 있는 Task의 PCB 정보를 저장하게 됩니다. (Process Stack, Ready Queue)

다음 실행할 Task의 PCB 정보를 읽어 Register에 적재하고 CPU가 이전에 진행했던 과정을 연속적으로 수행을 할 수 있습니다.

PCB(Process Control Block)

  • 프로세스 상태 : 생성, 준비, 수행, 대기, 중지
  • 프로그램 카운터 : 프로세스가 다음에 실행할 명령어 주소
  • 레지스터 : 누산기, 스택, 색인 레지스터
  • 프로세스 번호
profile
끝까지 해보고 하는 후회는 반성이 되어 앞을 보게 하지만 끝까지 하지 않고 하는 후회는 미련이 되어 뒤를 보게 한다.

0개의 댓글