ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • segmentation
    CS공부/운영체제 2022. 10. 14. 23:35

    segmentation

    분할

     

    1. address space를 logical segments로 분할

    segment: 특정 길이를 가지고 있는 연속적인 주소공간

    address space공간에서 논리적인 단위(code,stack,heap)로 segentaiton

    각 segmet는 독립적으로 함

    physical memory의 서로 다른 부분에 할당

    -공간을 키우거나 줄이거나 할 수 있음 

    -각각의 segment에 대한 base,bounds값이 필요하게 됨

     

    2. 

    physical address = offset+ base

    offset = virtual address - start address of segment

    힙에서 얼만큼 떨어져있는지 offset

     

    3. segmentation fault or violation

    heap영역이상 접근하려할때 주소가 bound를 벗어났다고 감지하고 trap을 발생 해당 프로세스를 종료시킬 가능성이 높음

     

    4.

    14자리 비트 

    segment,offset

    segment 정보 code 00 heap 01 stack 11

    offset 정보를 가짐

     

    segment mask 110000000

    offset mask 00111111

     

    5. stack은 반대로 

    하드웨어 서포트가 필요 

    code 1 heap 1 stack 0(negative direction) grow positive 

    6. sharing

    메모리를 절약할 수 있게 됨 

    protection bit를 추가함으로써 하드웨어 서포트를 할 수 있게됨

    segment마다 권한을 다르게줄 수 있음 

    cde read-execute

    heap stack read-write

     

    7. 메모리 공간 

    hole: large block of avaiable memory

    hole size가 다양하고 흩어져있음 

     process 크기보다 더 큰 메모리 hole에 할당할 수 있음 

    운영체제는 메모리에서 어떤 공간을 할당했는데 어느곳이 사용 안되는지 정보 유지하고 있는다

     

    8. 

    first 큰것중에 처음

    best 큰것중에 가장작은것

    worst 큰것중에 가장 큰것

     

    9.

    external fragmentation

    연속적이지 않는 hole -> compaction 을 해서 하나의 블락으로 만들 수 있지만 overhead

    중간의 hole이 흩어져 있는 fragmentation

    전체 segmet를 할당하면서 생기는 hole 

    internal fragmentation

    페이징 기법

    메모리를 고정된 크기로 분할 

    page frame에 맞춰 page분할 => 메모리 공간이 남는게 생김 

     

     

     

    10. memory compaction

    사용하지 않는 것을 하나로 모으자 

    비용이 큼 

    메모리를 할당받아서 실행되는걸 멈추고, copy data , register값도 변경해야함

     

    11. segmentation장점

     

    sparse하게 할당 

    stack,heap 독립적으로 나누어 할당 가능

    빠르고,쉽고 하드웨어에 적합

    segments를 공유하게 용이

    똑같은 translation적용

    code/data sharing

    동적할당을 지원

     

    12.segmentation단점

    각각 segment가 연속적인 형태로 할당 

    external fragmentation이 발생할 수 있음 

    segment전체를 물리적 메모리를 하면 실제 물리적 메모리가 충분하지 않을 수 있음 

    paging실제 필요한 공간만 사용하는 장점이 있음

    유연하지 못함 heap영역 전체를 할당, 그 segment에실제 사용하지 않는 공간도 존재할 수 있어서 불필요하게 physcical 차지할 수 있다.

    'CS공부 > 운영체제' 카테고리의 다른 글

    주소 변환 address translation  (0) 2022.10.14
    Multiprocessor Scheduling  (0) 2022.10.14
    Multi-level Feedback Queue  (0) 2022.10.14
Designed by Tistory.