-
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 댓글