os는 프로세스들을 관리한다. 즉, (wait-ready-execute)상태로 전환시켜주는, context switching을 하는 일들을 통해서 자원을 효율적으로 사용하게끔 해주는(hw와 sw의 연결고리) 역할을 한다.
이러한 내용들이 자세히 어떤 방식으로 일어나는지가 기술할 예정인데, 이러한 과정을 좀더 hw적으로 가깝게 가르쳐주는것이 컴퓨터 구조 수업이고, sw적으로 가깝게 가르쳐주는것이 운영체제 수업이다.
컴퓨터구조 교수님께 cpu관점에서 os와 유저프로세스 모두 동일한 프로세스들인데 어떻게 os가 다른 프로세스들을 관리할 수있는지 질문을 해서 얻은 답변이다.
cpu는 이런 프로세스들을 관리하는 프로세스인 os의 instruction들도 다른 프로세스의 instruction들과 동일하게 하나하나씩 fetch - decode - execute를 통해 수행한다. interrupt나 system call이 일어나거나 하면 os의 inst가 호출이 된다. cpu가 번갈아가면서 process들을 수행하는데 그 사이에 os도 호출하며 수행하기때문에 process들을 관리할 수있는거다 라고 생각하면되겠다.
이것을 생각하고 모든 것의 실현은 cpu가 pc에 있는 inst를 읽어서 수행하는것이라고 생각하면되겠다. 그것을 효율적으로하기위한 기술들로, 지금부터의 pipeline, memory hierarchy /os 수업에서 배우는 ~~들이 되겠다.

답변을 정리하다보니 의문.
os가 호출되는것은 system call이다. 그러면 os하면 딱 생각나는 gui, 즉 밑에 작업표시줄이나 바탕화면 이런것들을 보여주는것은 커널의 영역일까? 그러면 gui는 항상 실행되고있으니(작업표시줄은 항상보이지 않는가) 항상 system call이라서 system call이 너무 자주일어나야하지않을까? 하는 생각의 결론은 커널이 아닐거 같다이다. 그래 이것은 어리석은 질문이었다. OS가 커널과 SHELL로이루어져있는데 GUI가 SHELL의 종류이니...
그래도 SHELL이 계속일어나는건지 궁금하다 아니면 JQUERY처럼 비동기적으로 수행되는가?