CS 116

[모두의 네트워크] 2장 네트워크의 기본 규칙

Lesson 6. 네트워크의 규칙 프로토콜이란? 프로토콜은 컴퓨터 내부에서, 또는 컴퓨터 사이에서 데이터의 교환 방식을 정의하는 규칙 체계를 의미합니다. 이렇게 통신을 하기 위해서는 데이터를 상대방에게 보내고, 이를 상대방이 받을 때까지 지켜야하는 여러가지 독립적인 규칙을 준수해야합니다. Lesson 7. OSI 모델과 TCP/IP 모델 OSI 모델이란? 서로 다른 기기끼리의 통신을 위해서는 표준 규격이 필요합니다. OSI 모델이란 ISO(International Organization for Stadardization) 국제 표준화 기구에서 제정한 표준 규격을 의미합니다. OSI 모델은 네트워크 기술의 기본이 되는 모델이며 일곱 개의 계층을 통해서 컴퓨터끼리의 데이터 송수신이 가능합니다. 각 계층마다의..

CS/Network 2023.12.27

[모두의 네트워크] 1장 네트워크 첫걸음

Lesson 1. 네트워크 구조 컴퓨터 네트워크란? 우선 네트워크란 다양한 기기들이 연결되어 있는 상태를 의미합니다. 하지만 네트워크의 대상은 기기뿐만 아니라 사람이 될 수도 있습니다. 그러니까 컴퓨터와 사람의 네트워크, 컴퓨터와 컴퓨터의 네트워크, 사람과 사람의 네트워크라는 용어를 모두 사용 가능합니다. 그 중에서, 컴퓨터와 컴퓨터의 연결을 컴퓨터 네트워크라고 합니다. 또한 인터넷은 전 세계의 작고 큰 네트워크를 연결하는 거대한 네트워크를 의미합니다. 그러므로 우리는 인터넷을 통해서 해외 사이트에 접속할 수 있는 것입니다. 패킷이란? 패킷이란 네트워크를 통해 전송되는 데이터의 작은 조각을 의미합니다. 데이터를 있는 그대로 전송하면 되지만 굳이 작은 데이터로 쪼개 전송하는 이유는 네트워크에는 데이터를 전..

CS/Network 2023.12.25

[운영체제] 스케줄링 알고리즘 : SPN, SRTF

오늘은 이전 글에 이어서 스케줄링 알고리즘 중 SPN, SRTF에 대해서 알아봅시다. 이전 글을 보고 오시지 않았다면 읽고 오시는 것을 추천드립니다! 2023.12.10 - [Computer Science/운영체제] - [운영체제] 스케줄링 알고리즘 Shortest Process Next(SPN) 프로세스가 ready의 프로세스 목록 중 service Time이 가장 짧은 것부터 실행하는 방법을 의미합니다. 이전 글의 예시와 같이 진행해봅시다. 아래와 같은 루틴을 갖게 될 것입니다. 9초까지는 동일하지만, SPN은 9초에서 다르게 작동합니다. 9초에 B의 작업을 모두 마치고 스케줄링 과정을 진행해야합니다. 현재 메모리에는 C, D, E가 로드되어 있고 우리는 이 중에서 어떤 것을 실행할 지 정해야합니다...

CS/OS 2023.12.10

[운영체제] 스케줄링 알고리즘 : Priority, FCFS, RR

오늘은 스케줄링 알고리즘 Priority, FIFO, RR에 대해서 알아보겠습니다. 개요 지난 글에서 다룬 Scheduling의 종류 중에서 Short-Term Scheduling은 어떤 방법이 효율적이라고 할 수 있을까요?? 사용자의 관점에서 본다면 response time. 즉, 내가 프로그램을 실행했을 때 실행되는 반응 속도가 빨라야할 것입니다. 하지만 시스템 적으로 바라본다면 CPU utilization. 즉, CPU를 얼마나 효율적으로 사용하는 지가 관건일 것입니다. 스케줄링 판단 기준 그렇다면 스케쥴링을 판단하기 위한 몇가지 기준과 용어에 대해서 다뤄보겠습니다. CPU utilization : CPU가 user의 프로세스들을 실행하기 위해 차지하는 시간의 비율 Throughput : 단위 시간..

CS/OS 2023.12.10

[운영체제] 프로세스 스케줄링

오늘은 프로세스 스케줄링에 대해서 다뤄보겠습니다. 프로세스 스케줄링의 종류 우리는 지금까지 어떠한 프로세스가 ready에서 run으로 변경될 지, 어떤 run 상태의 프로세스를 block시킬지, 어떤 프로세스를 swap out, swap in 할지와 같은 프로세스를 선택하는 과정을 프로세스 스케줄링이라고 하였습니다. 하지만 엄밀히 따지면 프로세스 스케줄링은 크게 3가지로 분류할 수 있으며, 여기에 I/O 장치가 받은 입출력 명령에 대해서 어떤 것을 우선 실행할지 결정하는 I/O 스케줄링까지 합해서 총 4가지의 스케줄링이 있습니다. 프로세스의 스케줄링은 스케줄러가 실행되는 주기의 길이에 따라 Long-term, Medium-term, Short-term으로 나뉘게 됩니다. Long-term Scheduli..

CS/OS 2023.12.10

[운영체제] Trashing

오늘은 Demand Paging의 부작용으로 발생하는 Trashing에 대해서 알아보겠습니다. Trashing Demand Paging을 사용하면 메모리에 많은 프로세스를 올릴 수 있다는 장점이 있습니다. 하지만 메모리에 공간이 없으면 페이지를 swap하는 과정이 필요하였고, 이 과정에서 불필요하다고 판단되는 페이지는 swap out되는 것을 알고 있습니다. 만약, 이러한 page replacement 과정으로 인해서 다음 단계에 필요한 페이지가 page fault를 일으켰다면 다시 page를 load해야할 것이고, 이 과정에서 CPU는 I/O device에게 load 명령을 내린 뒤 다른 작업을 처리할 것입니다. 하지만 너무도 많은 프로세스들이 I/O에 의해서 load되는 과정에 있다면 결국 CPU는 ..

CS/OS 2023.12.09

[운영체제] 페이지 교체

오늘은 페이지 교체가 발생하는 원인과 페이지 교체의 방법들을 알아보도록 하겠습니다. 페이지 교체 메모리는 한정적입니다. 아무리 가상 주소 공간을 이용하여 많은 수의 프로세스를 메모리 상에 올린다고 하더라도, 메모리에 프로세스를 로드할 수 없는 상황은 필연적으로 발생합니다. 이 때, 우리는 어떠한 프로세스를 swap할 것인지를 정해야합니다. 자주 쓰는 프로세스보다는 덜 쓰는 프로세스를, 또는 최근에 사용됐던 프로세스 보다는 예전에 사용했던 프로세스를 swap out해야할 지도 모릅니다. 여기서는 이러한 페이지 교체를 하는 방법론에 대해서 알아보겠습니다. FIFO(First-In, First-Out) 말 그대로, 가장 먼저 들어온 것을 가장 먼저 밖으로 내보내는. 그러니까 가장 예전에 쓰인 프로세스를 내쫓는..

CS/OS 2023.12.09

[운영체제] TLB(Translation Lookaside Buffer)

오늘은 page table에서 주소를 읽어오는데 걸리는 시간을 줄이기 위한 수단인 TLB를 알아보겠습니다. Translation Lookaside Buffer Logical Address를 읽고 실제 해당 주소로 접근하기 위해서는 2~3회의 메모리 접근이 필요합니다. 단지 하나의 instruction을 수행하기 위해서 이러한 많은 연산이 필요하고, instruction은 굉장히 빠른 속도로 진행되므로 불필요한 접근들 또는 이러한 접근을 효율적으로 진행해볼 방식을 고안하고자 하였습니다. 그렇게 해서 하드웨어의 자원인 레지스터를 이용하여 해당 방법의 시소요 시간을 줄여보기로 하였습니다. 그렇게 해서 나온 것이 TLB 즉, Translation Lookaside Buffer입니다. TLB는 Logical Ad..

CS/OS 2023.12.09

[운영체제] 다계층 페이지 테이블

오늘은 다계층 페이지 테이블. Multi-level Page Table에 대해서 알아보겠습니다. Multi-level Page Table 프로세스의 크기가 커지게 되면서 page table을 저장하기 위해 많은 저장 공간이 필요해지게 되었습니다. 이러한 문제를 해결하고자 다계층 페이지 테이블이 도입되게 되었습니다. 4G의 주소공간을 갖는 컴퓨터가 있다고 해봅시다. 하나의 페이지는 통상 4Kb이니 우리의 메모리에는 페이지가 총 1M개 들어갈 수 있습니다. 페이지 테이블 1개는 4K이고, 페이지 엔트리는 4byte입니다. 따라서 페이지 테이블은 1K개의 페이지를 나타낼 수 있습니다. 즉, 페이지 테이블 한개로는 4G에 있는 모든 페이지를 저장할 수 없습니다. 따라서 이러한 여러 페이지테이블을 관리하기 위한 ..

CS/OS 2023.12.09

[운영체제] Demand Paging

오늘은 Virtual Memory를 활용한 Paging 기법인 Demand Paging에 대해서 알아봅시다. Demand Paging 이전 시간에 다룬 Virtual Memory와 Paging 기법을 동시에 활용한 방법입니다. 즉, 필요한 페이지만을 메모리에 로드하고 그 때, 그 때 교체하는 방식입니다. Demand Paging에서는 Logical Address를 Logical Address로 변환하기 위해 아래와 같은 메커니즘으로 작동합니다. Logical Address에 해당하는 페이지를 먼저 찾아야합니다. 그러기 위해서 PCB에 저장되어 있는 Page Table의 주소를 알아야합니다. 그래야 해당 프로세스의 Page table을 찾아가서 Logical Address에서 나타내는 page의 index..

CS/OS 2023.12.08