본문 바로가기

Computer Science

(4)
Advanced Operating Systems Structure(4): L3 Microkernel 개요 이전 포스트에서는 SPIN, Exokernel이 u-kernel의 문제를 해결하는 OS 구조로 소개했다. 이번 포스트에서는 u-kernel에 대해서 다시 알아보려고 한다. 이 구조는 본질적으로 확장성 및 이식성이 좋은 구조이기 때문에 낮은 성능을 가진다는 생각을 갖게 한다. 이 번 포스트에서는 u-kernel 구조를 유지하고 성능도 유지할 수 있는 L3 u-kernel에 대해서 알아보자 잠재적 성능 손실 먼저 u-kernel이 가지는 성능 문제를 보자. 먼저 Border crossing 이슈가 있다. 각 service들은 각자의 address space를 가지고 있고, privilege level이 다르기 때문에 context switch, data copy 등 고정적인 비용이 들어가고, cach..
Advanced Operating Systems Structure(3): Exokernel 개요 이전 포스트에서는 SPIN kernel에 대해서 알아봤다. 이번에는 SPIN과 다른 방법으로 확장성에 대해 접근하는 Exokernel이라는 커널에 대해서 알아보자. Exokernel은 하드웨어를 extension(Library OS)에 직접적으로 노출시켜서 사용하게 한다. 대신 자원을 사용하기 전에 인증 절차를 거쳐서 자원을 보호한다. 인증과 사용의 분리 Exokernel은 Library OS들이 자원에 대해 요청하면 Library OS과 하드웨어를 바인딩하고 자원에 접근할 수 있는 key를 준다. 다른 말로 Exokernel은 하드웨어를 안전한 바인딩을 통해서 노출시키고 Library OS들은 암호화된 키를 가지고 하드웨어에 직접 접근할 수 있다. 그래서 키를 변조하거나 다른 Library OS에..
Advanced Operating Systems Structure(2): SPIN 개요 지난 포스트에서는 Monolithic 구조와 u-kernel 구조에 대해서 알아봤다. 이번 포스트에서는 자원 보호나 성능을 희생하지 않고, 확장성 있는 OS 구조를 위한 방법에 대해서 알아보자. 그렇기 위해서 아래와 같은 조건을 충족시키는 문제 해결 방법에 대해서 알아보자 Core Service는 정책 없이 메커니즘만 포함해야 한다. border crossing 비용 없이 자원에 접근할 수 있어야 한다. 보호나 성능의 희생 없이 자원을 유연하게 관리할 수 있어야 한다. SPIN OS 먼저 워싱턴 대학에서 개발한 SPIN OS이 문제를 해결하기 위한 접근법을 알아보자. SPIN OS는 커널과 OS Service들을 같은 Protection Domain에 둠으로서 border crossing 문제를 해..
Advanced Operating Systems Structure(1) 개요 Operating System의 목적은 다음과 같다. Protection: user와 OS 자체를 보호할 수 있어야 된다. Performance: service를 수행하는 데 걸리는 시간을 줄인다 Flexibility: 확장성을 의미한다. 하나로 모든 것을 맞출 수는 없다. Scalability: 하드웨어 리소스가 증가하면 성능도 증가 Agility: 애플리케이션의 요구사항 및 리소스 가용성 변화에 적응 Responsiveness: 외부 이벤트에 대한 반응성 이러한 요구 사항을 충족시킬 수 있는 OS 구조에 대해서 알아볼 것이다. OS 구조 Monolithic 가장 단순한 구조이다. 하드웨어는 OS로부터 관리되고, 애플리케이션들, OS 모두 각자의 하드웨어 주소 공간을 가지고 있다. 각자의 주소 공..