Operating System : 운영체제

본 토픽은 현재 준비중입니다. 공동공부에 참여하시면 완성 되었을 때 알려드립니다.

(2) Multi programming

@ Multi programming이란?

    // Active job이 메인 메모리에 같이 존재해서 수행하는 것

        > Active job이란 아직 수행이 끝나지 않는 job을 말합니다.

    // 이렇게 Active job을 동시에 가질 수 있는 개수를 Degree of Active job이라고 불렀습니다.

    // 이는 매우 좋은 해결책이었지만, 이로 인해 문제가 발생합니다.

 

? Problem 1. Memory protection

    // 0~1000 : OS, 1001~2500 : job1, 2501~4000 : job2, 4001~ : job3 이렇게 메모리가 할당된다고 합시다

        > 이 때 만약 job1이 job2의 영역을 침범하여 3000이라는 주소에 데이터를 씁니다.

        > 이러한 현상이 발생하는 것을 Memory protection 문제라고 합니다.

    

 

Problem 2. Relocation (Memory)

    // job이 메모리의 어느 위치에 로드 될 지를 알 수 없게 되었습니다.

    // 이 때문에 임의의 주소에서도 문제없이 job이 수행될 수 있을 수 있도록 만들어야 하게 되었습니다.

 

@ 위의 두 문제를 handling 하기 위해 Base register & Bound register라는 개념이 생기게 됩니다.

    // 프로그램을 작성할 때에는 주소 0을 기준으로 작성하고,

    // base - bound 사이 값 주소인지를 매번 확인하는 Protection을 수행합니다.

    // 그리고 Base register 을 이용해서 실제 물리적 메모리 주소를 계산합니다.

댓글

댓글 본문
버전 관리
박천명
현재 버전
선택 버전
graphittie 자세히 보기