전체 글 (34) 썸네일형 리스트형 05. 운영체제 - CPU Virtualization - Stride scheduling (4) Proportional Share Scheduler 앞선 게시물의 스케줄링 기법들은 그냥 실행 가능한 job들에 대해 turn-around time과 response time을 고려하여 CPU time을 적절하게 할당해주는 방식이다. 이번 게시물에서는 job이 자신이 사용하고자 하는 CPU 점유율을 얘기하면, 설정된 점유율에 비례해서 스케줄링을 해주는 방식을 다룬다. 이러한 Fair-share 스케줄러는 앞선 스케줄러의 turn-around time / response time 과는 다른 기준을 사용하여 디자인해야한다. 즉 현재 동작하는 프로세스들이 요구하는 지분만큼 CPU를 사용할 수 있도록 보장해주는 것이 필요하다. Basic Concept 기본적인 아이디어는 티켓이다. 티켓은 프로세스가 받아야하는 .. 04. 운영체제 - CPU Virtualization - MLFQ(3) 지난 게시글의 스케줄링 방식을 정리해보면 다음과 같다. STCF(PSJF) 스케줄러는 turn-around time 측면에서는 좋았지만 실행시간이 긴 job은 계속 뒤로 밀리며 response time 측면에서 좋지 않았다. 또한 이 방식을 사용하기 위해서는 job의 runtime이 미리 정해져있고 그걸 알아야한다는 조건이 필요한데, 이는 대부분의 경우 불가능한 조건이므로 한계가 있었다. 이를 해결한 방법으로 Round Robin(RR) 방식이 있었고, 모두 공평하게 돌아가며 실행되므로 response time 측면에서는 좋았지만 turn-around time 측면에서는 그다지 좋지 않았다. 하지만 아무런 사전 지식을 필요로 하지 않는 방식이기 때문에 꽤 좋은 방법이다. Multi-Level Feedba.. 03. 운영체제 - CPU Virtualization (2) Scheduling: Introduction 운영체제에서 스케줄링은 자원을 필요로하는 프로세스들에게 자원을 할당해주는 것을 말한다. CPU 스케줄링은 적절한 스케줄링 정책을 통해 프로세스들에게 CPU time을 할당해주는 것이다. 앞서 CPU Time sharing에 의해서 CPU Virtualization이 이루어진다고 하였는데, 이때 어떻게 CPU time을 나누어가질 것인지에 대한 것이 스케줄링이다. 그러면 어떤 지표에 근거해서 스케줄링을 수행해야할까? Scheduling Metrics Turnaround time (성능지표) : T(turnaround) = T(completion) - T(arrival) Fairness Turnaround time은 시스템에 job이 들어온 시간과 job이 완료된.. 03. 컴퓨터 네트워크 - Transport Layer(1) 3.1 Transport-layer services Transport 레이어는 서로 다른 호스트에서 동작하는 프로세스 간의 logical 한 통신을 제공한다. Transport 프로토콜은 end system에서 동작합니다. (TCP, UDP.. ) 송신 측 : 애플리케이션의 메세지를 segment로 쪼개서 network 레이어로 전달 수신 측 : segments를 메세지로 다시 조합하여 application 레이어로 전달 Network layer VS Transport layer Network layer : 호스트 간 logical communication을 제공 Transport layer : 프로세스 간 logical communication을 제공 (네트워크 레이어에서 제공하는 서비스에 의존) (비.. 02. 운영체제 - CPU Virtualization (1) CPU Virtualization - The Abstraction : The Process 운영체제는 많은 수의 virtual CPU가 존재하는 것과 같은 착각을 줄 수 있다. 이것은 Time sharing을 통해 이루어진다. Time Sharing : 한 프로세스를 돌리고, 잠깐 멈춰두고 다른 프로세스를 돌리고,, 반복 근데 이렇게하면 CPU에서 돌릴 프로세스를 바꿀 때 발생하는 context swiching에 의한 오버헤드가 있음.. Process 프로세스는 실행되고 있는 프로그램이다. 프로세스의 구성요소는 다음과 같다. CPU state (레지스터) Program counter Stack pointer General registers Memory (address space) instructions .. 01. 운영체제 Intro * Operating systems: Three easy pieces를 정리한 내용입니다. 운영체제 운영체제의 기능을 세가지 관점에서 설명한다. Virtualization : 시스템의 CPU, 메모리, 저장장치 등을 가상화하여 동작하는 프로그램이 시스템의 자원들을 혼자 사용하는 것처럼 만들어주는 것 Concurrency : 여러 개의 프로그램이 동시에 수행되더라도 안전하고 효율적으로 자원을 공유할 수 있도록 만들어주는 것 Persistence : 데이터를 찾기 쉽게 하기 위해 어디에, 어떤 형태로 저장할 것인지 정함 운영체제는 시스템이 정확하고 효율적으로 동작하도록 해야한다. Virtualization OS는 physical resource (프로세서, 메모리, 디스크 등) 들을 가상화하여 프로그램이 p.. 02. 컴퓨터 네트워크 - Application Layer 네트워크 어플리케이션에는 이메일, 웹, SSH나 Telnet같은 원격로그인, P2P 파일공유 등이 있습니다. 2.1 Principles of Network Application 네트워크 어플리케이션은 end system에서만 동작하면 되고, 라우터와 같은 네트워크 코어 장치들은 유저 어플리케이션을 실행하지 않습니다. 💫어플리케이션의 구조 어플리케이션의 구조에는 client-server 구조와 peer-to-peer (P2P) 구조가 있습니다. 1. Client-Server 구조 ☝ 서버 호스트 상에서 언제나 켜져있음 고정 IP 구조를 가짐 확장을 위해 서버들을 모아놓은 시설을 데이터센터라고 함 ✌️클라이언트 서버와 통신함 필요할때만 접속함 유동IP주소를 가질 수 있음 클라이언트끼리 직접 소통하지 않음 오.. 01. 컴퓨터 네트워크 - Introduction 네트워크 네트워크는 컴퓨터들이 통신망을 통해 데이터를 주고받으며 서로 그물처럼 연결된 체계를 말합니다. 1.1 인터넷 인터넷은 네트워크들의 네트워크로, 매우 많은 computing device들이 연결된 광범위한 네트워크입니다. 인터넷은 end system / communication links / packet swiches 로 구성됩니다. end system (host) : PC, 서버, 노트북, 스마트폰과 같이 인터넷에 연결되어 네트워크 어플리케이션을 실행시키는 기기를 말합니다. communication links : 광섬유나 동축케이블 같은 유선케이블 혹은 라디오, 무선통신과 같은 무선 연결장치를 의미합니다. end system과 packet switch 들을 서로 연결해주는 역할을 수행합니다. p.. 이전 1 2 3 4 5 다음