본문 바로가기

학교 수업28

운영체제 3 || OS의 구조를 어떻게 디자인 할 수 있을까? 오늘은 OS의 발전과정에 대해 배워볼거야. 먼저 결론부터 얘기하자면, OS를 설계하는데 있어서 절대적인 진리는 없어. 다만 성공적인 접근 방법이 존재할 뿐이야. 자, OS를 디자인하기 위해서는 제일 처음, 사용자의 입장과 시스템의 입장에서 목적과 특징을 정해야해. 당연히 사용자의 입장에서는 사용하기 편하고, 배우기 쉽고, 신뢰성있고, 안전하고 빠르게 작동하는게 좋을거야 시스템의 입장에서는, 설계하기 간편해야하고, 유지 보수하기도 편해야하고, 유연성이있어야하고, 에러에 있어서 좀 자유로워야 해. 이런 각각의 목적들을 가지고 설계를 하는거지 그러니까, OS를 설계 할 때, 중요한 포인트는 뭐냐면, Policy와 Mechanism을 잘 나누는 거야 Policy는 OS가 무엇을 할 건지에 관한거야 Mechani.. 2021. 3. 14.
운영체제 || 2. When computer is starting ... 저번 포스팅에는 우리 운영체제가 어떻게 시스템을 보호하는지에 대해 배웠어. 복습을 간략하게 해 보자면, CPU를 User mode // Kernel mode로 나누고, 특권 명령( privileged instruction)같은 시스템에 위협을 줄 수 있는 명령들은 오로지 Kernel mode 에서만 실행 되고, user app이 이 명령들에 접근하려 하면, 시스템 콜의 형태로 Exception이 발생되면서 OS가 cpu의 제어권을 받은 후, 명령을 처리하고, 다시 user app에게 cpu의 제어권을 넘겨주는 형식으로 시스템을 보호해. 즉, 시스템 콜은, OS가 제공하는 서비스를 사용하기 위한 인터페이스라고 정의 할 수 있어. 오늘은 컴퓨터의 전원이 켜 질때 어떠한 일이 일어나는 지 알아볼거야. 먼저, .. 2021. 3. 14.
운영체제 || 1. System Call 오늘은 어떻게 OS가 시스템을 보호하는지에 대해서 다룰것이다. 운영체제는 먼저, Hardware와 Software의 중간단계에서 user에게 편리한 인터페이스를 제공하고, 또 여러 app들이 하드웨어의 자원을 효율적으로 사용할 수 있도록 관리해준다. 그렇다면, OS를 거치지 않고 app들이 하드웨어에 직접 접근할 수 있으면 어떻게 될까? 당연히, 보안문제가 생길 수 있고, 특정 application이 하드웨어의 자원을 독점하게 될 수도 있다. 우리 컴퓨터는 인터럽트 기반으로 작동하는데, CPU안에 있는 특정 레지스터는 OS가 가지고 있는 인터럽트 핸들러의 코드 주소를 가리키고 있다. 근데 나쁜 application이 인터럽트 핸들러의 주소를 자기가 가진 코드의 주소로 바꾸게 되면 사용자가 Input 신호.. 2021. 3. 11.
5장, Network layer :: AS 내부의 라우팅/ intra AS routing / OSPF [컴퓨터 네트워크] - 5장, Network layer :: Control Plane, Link State, Distance Vector 5장, Network layer :: Control Plane, Link State, Distance Vector 네트워크 레이어에서 하는 일을 먼저 복습하자. 크게 두 가지가 있었어, 포워딩과 라우팅이야. 포워딩은 인풋으로 들어온 패킷을 아웃풋으로 내보내는 것이고 Data Plane이고, 라우팅은 포워딩 테� god-gil.tistory.com 위의 글에서, 라우팅 알고리즘에는 LS와 DV가 있다고 했었지? 근데 생각 해 보면, 라우터가 수천개가 넘을텐데, 저렇게 메세지를 교환하는 방식은 너무 비효율적이지 않을까? 전 세계의 라우터가 같은 정보를 가지려면, 그건 또 .. 2020. 6. 21.
5장, Network layer :: Control Plane, Link State, Distance Vector 네트워크 레이어에서 하는 일을 먼저 복습하자. 크게 두 가지가 있었어, 포워딩과 라우팅이야. 포워딩은 인풋으로 들어온 패킷을 아웃풋으로 내보내는 것이고 Data Plane이고, 라우팅은 포워딩 테이블을 만드는 활동이야. Control Plane에 속해 Control Plane, 라우팅에 대해 간략하게 배워 볼거야. 제어 평면에는 두가지 방법이 존재 해. 하나는 목적지를 기반으로 하는 전통적인 방법이고, 다른 하나는 SDN이라고 해서 중앙에 라우팅을 해 주는 서버를 두고, 그 서버에서 테이블을 배정받는 방식이야. 자세한건 뒤에서 배우고, 지금은 간략하게 알아만 놓자. 자, 그러면 라우팅이라는 것은, 어떻게 길을 잘 설정해서 갈건가에 대한 부분이지? 그러면 어떤 알고리즘을 사용할까? 이것도 크게 두가지가 있.. 2020. 6. 21.