운영체제 - 주소공간의 개념

김민교·2023년 4월 9일
0


초기 컴퓨터의 물리 메모리 생김새 ㅋㅋ

운영체제는 메모리에 상주하는 라이브러리였다. 물리 메모리에 하나의 프로그램이 존재하였고 나머지 메모리를 사용했다. 정말 간단하다.

하지만 멀티프로그래밍 시대가 도래하였다.
여러 프로세스가 실행 준비상태에 있고, 운영체제는 이들을 전환하면서 실행한다.예로, 한 프로세스가 입출력을 실행하면 이때 CPU는 다른 일을 처리한다.이런 전환은 CPU의 이용률을 증가시켰다.
곧 시분할 시대가 시작되었다.
일괄처리 방식 ( 순차적으로 처리하는 것, batch computing)의 한계를 인식했다. 많은 사용자가 동시에 컴퓨터를 사용하고, 현재 실행 중인 작업으로 부터 즉시 응답을 원했다. 그래서 대화식 이용(interactivity)의 개념이 중요하게 되었다.

초기에는 하나의 프로세스가 수행될 동안 이 프로세스는 모든 메모리를 접근할 권한을 주었다. 그리고 시간이 다 되면 프로세스를 중단하고, 이 프로세스의 상태를 디스크에 저장한다. 그리고 또 다른 프로세스를 메모리에 적재한다. 이 때, 메모리에서 디스크로 저장하는 것은 굉장히 느리다. 그리하여 프로세스를 전환시에 프로세스가 메모리에 그대로 유지되면서 시분할 프로그래밍이 가능하게끔 해야한다. => 메모리 가상화 도입!

여러 프로그램이 메모리에 동시에 존재하려면 보호가 중요한 문제가 된다. 서로 침범하면 안된다!

[주소공간]
힙, 스택영역은 축소하거나 확장될 수 있다.

운영체제 가상화 목표

  1. transparency(투명성) : 프로세스가 메모리가 가상화가 되었다는 사실을 속임

  2. efficiency(효율성) : 시간과 공간 측면에서 효율적이어야 한다. 너무 느리게 실행되서는 안되고, 너무 많은 공간을 차지해서는 안된다. TLB등의 하드웨어의 도움을 받아야한다.

  3. protection(보호) : 프로세스를 다른 프로세스로부터 보호해야하고, 운영체제 자신도 프로세스로부터 보호해야한다. 다른 프로세스나 운영체제의 메모리 내용에 접근해서는 안된다.

요약

운영체제는 프로세스에게 자신만의 널찍한 메모리 공간이 있다고 환상을 줘야한다.
하드웨어의 도움을 받아 운영체제는 가상메모리 주소를 물리주소로 변환한다.

profile
안녕

0개의 댓글