※ 이 글은 서울대학교 홍성수 교수님께서 Operating System 강의 중 하셨던 말씀을 재구성한 내용입니다.
@ 시작전에 철학적인 부분들을 짚고 넘어가도록 하겠습니다.
// 백문이불여일run
> 다음주 목요일 첫번째 프로젝트에 대해서 얘기하게 될 것입니다.
@ OS는 전기 공학부에서 배운 과목들과는 차이가 많이 납니다
// 개념적인 부분에서
> 그렇기 때문에 이를 배울 때 구현을 염두에 두어야 합니다.
@ 하지만 구현을 생각하기는 쉽지 않습니다.
// 그래서 나누어 생각해야 합니다.
> Data Structure와
> Algoritm은 어떻게 될 것인지를 (어떻에 Operation할 것인가)
// 이렇게 생각하면 OS를 공부할 때 많은 도움이 됩니다.
// 개념적 틀을 가지고 구체화 시킬 필요가 있습니다.
@ 스티브 잡스가 왜 존경을 받을까요?
// 창조적인 생각을 하는 인물이기 때문입니다.
> 하지만 이 개념은 매우 모호합니다.
// 철학적인 미션을 부여받았을 때는
> 그를 구체화 할 생각상의 form이 필요합니다.
@ OS도 비슷한 측면이 있습니다.
// 복잡하기 때문에, 사고의 틀이 필요합니다.
> Complexity를 가지는 OS는 아래의 것들로 해결합니다.
.. Abstraction
.. Decomposition
@ Abstraction을 시스템 디자인에 적용하면
// Layered Architecture가 나옵니다.
> Application
> Middle Ware
> OS
> H/W
// 각 레이어의 역할은 무엇일까요?
> OS는 H/W layer를 Abstract해서 단순한 Interface만 제공하게 됩니다.
> 이를 가능하게 만들기 위해 각 Layer 사이에는
.. API가 존재하게 됩니다.
// 바로 위의 계층은 아래 계층에 종속적입니다.
> 이를 Layered in Principle이라 부르며, 이를 따라야 합니다.
@ 이를 Mental Tenplate과 어떻게 연결을 시킬까요?
// 어떤 어려운 문제를 접근할 때,
> 먼저 전체적인 흐름을 봅니다.
.. 그리고 문제를 구체화 시키기 시작합니다.
.. 사람은 기본적으로 Top-down적 사고를 합니다.
// 어떤 job을 그룹으로 묶는 것을
> 추상화라고 할 수 있습니다.
.. 피라미드 프린시플
@ 우리가 한 Layer의 추상화를 이해하면
// 다음 Layer로 넘어갈 수 있도록 하여야 합니다.
> Synthesis implementation
.. OS를 공부할 때도 이 개념을 잘 이해하면 좋을 것 같습니다.
@ 그리고 위에서 말한 사고의 방법은,
// 다른 분야에서도, 사용할 수 있어야 합니다.
> 학부생과 대학원생의 차이는
.. 학부생은 지식을 소비하고
.. 대학원생은 지식을 생산해야 합니다.
.. 이를 가능하게 하기 위해서는 추상화 -> 구체화를 해야 합니다.
.. 이를 잘할 때, 연구를 하게 되고
.. 결과적으로 창조적인 사람이 됩니다.
@ 어떤 문제를 바라보더라도
// 구체화 시켜야 합니다.
> 그리고 해결 방법을 찾습니다.
.. 그리고 이를 실행합니다.
// 전체적으로는 풀리기 힘든 문제일 수 있습니다.
> 하지만 나누면 풀릴 수 있는 문제가 생깁니다.
> 그래도 나오지 않으면 논문을 읽습니다.
.. 다른 이의 사례를 살피는 것이지요.
// 이것이 연구의 플로우입니다.
@ 결론적으로 문제를 잘 보아야 합니다.(스토리라인)
// 이를 나누고 구체화해야합니다.
> 해결을 하거나
> 해결이 힘들면 다른 이의 사례를 찾아보아야 합니다.(논문)
.. 그렇게 하나하나 해결합니다.
// 그렇게 모든 것이 해결되면,
> 새로운 지식을 생산하게 되는 것입니다.
.. 그리고 그것은 다수의 기존 연구와
.. 아주 작은 나의 독창적 해결방법이 섞이는 경우가 대부분입니다.