분류 전체보기110 네트워크 라우팅 라우팅이란 들어온 패킷을 어느 출력 경로를 통해 다음 호스트로 전달해야 가장 효율적인지를 결정하는 것이다. 내 컴퓨터에서 naver를 접근할 때 수많은 라우터(그림에서 주황색 동그라미)들이 있을 것이고 각 라우터는 여러가지 정보를 가지고 있다. (자신과 연결되어있는 라우터가 무엇인지, 거리가 얼마나 되는지 등) 이런 상황에서 라우터는 데이터를 가장 효과적으로 전달하고 혼잡상태를 피하기위한 라우팅을 한다. 네트워크 계층에서는 크게 두 역할이 있다. Data plane과 Control plane이다. Control plane은 데이터가 어느 라우터에서 어디 라우터로 가야하는지 등의 과정을 결정한다. Data plane은 forwarding plane으로도 불리는데 데이터가 어떻게 앞으로 가야하는지만을 결정한.. 2020. 11. 28. 운영체제 Context Switching Context Switching이란? CPU가 실행하는 process를 바꾸는 과정을 context switching이라고 한다. CPU는 여러가지 프로세스를 스케쥴러에 의해 번갈아가면서 실행한다. 예를들어서 현재 CPU가 process A를 실행하고 있는데 어느정도 시간이 흐르고 이제 스케쥴러에 의해 process B를 실행할 차례라면 process A에서 process B로 넘어가야 하는데 그냥 넘어갈 수는 없다. 왜냐하면 process A가 어디까지 실행되었는지를 알아야 다시 process A가 실행될 차례가 왔을 때 이어서 실행할 수 있기 때문이다. 모든 프로세스는 PCB(Process Control Block)라고 프로세스의 상태를 저장하는 구조체를 가지고 있다. PCB에는 process id와.. 2020. 11. 27. 운영체제 프로세스 구조 프로세스는 Stack, Heap, Data, Code 이렇게 4부분으로 이루어져 있다. 그 중 Stack에 대해 자세히 설명하자면 아래와 같이 간단한 C언어 코드가 있다고 가정해보자. 위 코드로 프로세스의 Stack 부분에서 어떤 과정을 거치는지 알아보자. 우선 Stack은 코드에서 함수에 관한 부분을 처리하는 곳이고 Code는 컴파일한 코드를 처리하는 곳이다. 아래 그림은 Code부분의 일부분이다. (그림은 예시를 위해 C언어 코드로 써져있지만 기계어라고 생각해야한다.) int res부분은 그저 선언하는 부분이니까 넘어가고 res= add(1,2)부분을 만나면 함수에 관한 처리를 해야하니 Stack부분에서 처리를 하게 된다. 그럼 Stack부분이 아래 그림과 같이 된다. (Stack을 거꾸로 뒤집었다고.. 2020. 11. 25. 운영체제 인터럽트란? 인터럽트란 cpu가 프로세스를 실행하고 있을 때 입출력, 파일읽기, 예외사항 등이 발생하여 처리가 필요한 경우 cpu에 알려주는 것이다. 저번 포스팅에서 프로세스의 상태에 대해 설명했었다. 간략히 설명하자면 프로세스의 상태는 프로세스의 생성과 종료를 제외하면 ready, running, block 이렇게 3가지로 나타낼 수 있다. cpu가 프로세스를 실행도중 파일 읽기 같은 명령을 수행하게되면 프로세스는 block 상태에 돌입하게 되고 파일 읽기가 끝나면 다시 ready 상태로 돌아오게 된다. 그런데 파일 읽기가 끝난걸 어떻게 알까? 1) 여기서 파일 읽기가 끝났다는걸 운영체제에 알려주는게 인터럽트의 역할이다. 2) 이외에도 0으로 나누기 등의 예외사항 처리를 위해서도 인터럽트가 발생하게 된다. 3) 키.. 2020. 11. 24. 이전 1 ··· 20 21 22 23 24 25 26 ··· 28 다음