문서 편집 권한이 없습니다. 다음 이유를 확인해주세요: 요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다: 사용자. 문서의 원본을 보거나 복사할 수 있습니다. [[분류: 운영체제]] == 개요 == Isolation이란 여러개의 User space Applicatio이 동작하는 과정에서, 서로의 리소스에 대한 접근을 제한하는 것을 말한다. == Isolation? == Isolation은 [[메모리]]나 [[스토리지]]처럼 컴퓨터의 물리적인 디바이스에 대한 접근을 제한하고 서로에 대한 Access를 [[IPC]]와 같은 방식을 통해서 분리시켜서 OS의 중요 역활인 서로다른 [[프로세서]]들이 서로를 침범하지 못하도록 하는 조건을 달성하는 것이다. == 종류 == # [[Hardware based isolation]]: 하드웨어를 통해서 리소스 분류를 하는 것이다. 대표적으로 [[TLB]]나 [[Intel MPK]]혹은 [[VMFUNC]]와 같은 하드웨어 기능들이 있다. 속도가 빠르며 단순하여 [[TCB]]가 작지만, 다른 한편으로는 하드웨어에 종속되기 때문에 하드웨어가 소프트웨어 디자인을 강제하여 [[Flexibility]]가 떨어지는 문제가 있다. # [[Software fault isolation]]: 소프트웨어 적으로 Isolation을 구현하는 것이다. [[SFI]]참고. # Language based isolation: 언어 단에서 Isolation을 구현하는 것이다. 예를 들어서 Rust나, C#과 같이 언어 레벨에서 리소스 관리를 안전하게 할 수 있도록 지원하는 언어들이 있다. 이러한 언어로 운영체제나 프로그램을 작성하게 되면 자연하게 컴파일러와 런타임이 리소스의 분리를 보장해 준다. 그러나 TCB가 커지는 문제와, 개발자가 반드시 그러한 언어를 사용하도록 강제하는 문제가 있다. 이외에도 여러 Isolation모델을 같이 사용하는 Hybrid model과 같은 예시가 있다. Isolation 문서로 돌아갑니다.