ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • File System
    전공 지식/OS 2018. 10. 19. 17:08

    Hard Link vs Symbolic Link


    Link : 서브 디렉토리나 파일로 향하는 포인터

    목적 : 파일 공유를 효과적으로 하기 위해

    HardLink

    Symbolic Link(SortLink)


    Dangling Pointer : delete 로 해제된 메모리를 가리키는 포인터,  스택 지역에서 사라진 메모리를 가리키는 포인터


    HardLink : 댕글링 포인터를 발생시키지 않음! 두개의 포인터가 각각 파일을 가리켰을 때, 한 포인터를 삭제해도 다른 포인터에 영향을 주지 않음




    SoftLink 

    만약 bar 포인터를 지운다고 하더라도 댕글링 포인터는 발생하지 않는다.                                           

    File을 foo 포인터로 접근이 가능하기 때문에!

    하지만 foo 포인터를 삭제한다면 bar 포인터는 가리키는 것이 없게 되고 

    File 또한 접근할 수없다. 그래서 bar 가 댕글링 포인터가 된다.



    C++ 에서 스마트 포인터를 도입하여 댕글링 포인터가 생기는 것을 방지해줌


    auto_ptr, shared_ptr, unique_ptr, weak_ptr


    auto_ptr

    소유권을 이전하는 포인터

    shared_ptr

    참조 카운팅 방식의 포인터. 객체의 소유권을 가지지 않고 참조 카운터만 유지하는 포인터임

    0이되면 자동으로 해제

    unique_ptr

    배열 삭제를 지원함

    소유권을 독점하는 방식

    weak_ptr

    hared_ptr을 관리하기 위한 reference count에 포함되지 않고 shared_ptr를 참조만 한다.


    '전공 지식 > OS' 카테고리의 다른 글

    Thread 와 Process  (0) 2018.12.07
    Virtual Memory Management  (0) 2018.08.16
    Memory Management Stategies  (0) 2018.08.16
    Deadlocks  (0) 2018.08.16
    Process synchronization  (0) 2018.08.09

    댓글