CS지식/운영체제

TIL 정리_102(Memory Management)

ran4 2022. 6. 1. 12:03

http://www.kocw.net/home/m/search/kemView.do?kemId=1046323

운영체제 강의를 듣고 정리한 내용입니다.

 


Shared Page

- 다른 페이지와 공유가능한 페이지

 

Shared code

  • Re-entrant Code (== Pure code)라고도 한다
  • 여러 프로세스가 공유할 수 있는 코드 부분을 같은 물리적인 메모리의 프레임으로 매핑하는 기법을 의미한다.

 

Re-entrant Code가 만족해야 하는 2가지 조건 

  1. read-only로 하여 프로세스 간에 하나의 code만 메모리에 올린다 (text editors, compilers, window systems)
  2. Shared code는 모든 프로세스의 논리적 주소 공간에서 동일한 위치에 있어야 한다

 

Private code and date

각 프로세스들은 독자적으로 메모리에 올린다

Private data는 논리적 주소 공간의 아무곳에 와도 무방하다.

 

Segmentation

  • 프로그램은 의미 단위인 여러 개의 segment로 구성되어 있다
  • 작게는 프로그램을 구성하는 함수 하나하나를 세그먼트로 정의한다
  • 크게는 프로그램 전체를 하나의 세그먼트로 정의 가능하다
  • 일반적으로는 code, data, stack 부분이 하나씩의 세그먼트로 정의된다

 

Segment는 다음과 같은 logical unit들을 의미한다

  • main()
  • function
  • global variables
  • stack
  • symbol table, arrays

 

Segmentation Architecture

논리적 주소는 다음의 두 가지로 구성되어있다

  • segment-number, offset
  • Segment table

각각의 테이블 엔트리가 가지고 있는 것 

base –> 세그먼트의 시작하는 물리적 주소

limit –> 세그먼트의 길이

 

Segment-table base register (STBR)

물리적 메모리에서의 segment table의 위치

 

Segment-table length register (STLR)

프로그램이 사용하는 segment의 수

segment number s is legal if s < STLR

 

 

Segmentaton Architectecture

- Protection

각 세그먼트 별로 protection bit가 있다

Each entry :

Valid bit = 0 -> illegal segment

Read/Write/Execution 권한 bit

 

- Sharing

shared segment = 공유된 세그먼트 

same segment number = 동일한 세그먼트 숫자 

***segment는 의미 단위이기 때문에 공유와 보안에 있어 paging보다 훨씬 효과적이다!

 

- Allocation

first fit/ best fit

external fragmentation이 발생한다

***segment의 길이가 동일하지 않으므로 가변 분할 방식에서와 동일한 문제점들이 발생한다

 

 

Segmentation with Paging

pure segmentation과의 차이점

segment-table entry가 세그먼트의 기본 주소를 가지고 있는 것이 아니라

sement를 구성하는 page table의 기본 주소를 가지고 있다

 

 

Memory Management에서의 메모리 관리는 물리적인 메모리 관리를 의미한다

중요 포인트는 주소 변환이다

주소 변환에 있어 운영체제의 역할은 없기 때문이다

-> 하드웨어가 해야하는 기능(역할)이다

 

why?

프로세스 하나가 cpu를 실행하면서 주소 요청을 할 때, 

주소변환을 위해 메모리 참조를 해야할 때 프로세스는 운영체제의 도움을 받지 않는다

-> 주소변환은 무조건 하드웨어적으로 발생한다.

 

 

I/O장치가 접근할 때는 사용자 프로세스가 직접 접근할 수 없기 때문에

이 경우 운영체제의 개입이 발생한다.

 

'CS지식 > 운영체제' 카테고리의 다른 글

TIL 정리_104(Virtual Memory 2)  (0) 2022.06.06
TIL 정리_103(Virtual Memory 1)  (0) 2022.06.03
TIL 정리_101(Memory Management)  (0) 2022.05.29
TIL 정리_100(Memory Management)  (0) 2022.05.27
TIL 정리_99(Memory Management)  (0) 2022.05.26