Computer Science35 CPU 스케줄러 CPU 스케줄러의 스케줄링 대상은 Ready Queue에 있는 프로세스들이다. FCFS(First Come First Served) 특징 먼저 온 고객을 먼저 서비스해주는 방식, 즉 먼저 온 순서대로 처리 비선점형(Non-Preemptive) 스케줄링 - 일단 CPU를 잡으면 CPU burst가 완료될 때까지 CPU를 반환하지 않는다. 할당되었던 CPU가 반활될 때만 스케줄링이 이루어진다. 문제점 convoy effect - 소요시간이 긴 프로세스가 먼저 도달하여 효율성을 낮추는 현상이 발생한다. SJF(Shortest Job First) 특징 다른 프로세스가 먼저 도착했어도 CPU burst time이 짧은 프로세스에게 선 할당 비선점형(Non-Preemptive) 스케줄링 문제점 starvation .. 2021. 10. 22. 스케줄러 프로세스를 스케줄링하기 위한 Queue에는 세 가지 종류가 존재한다. Job Queue : 현재 시스템 내에 있는 모든 프로세스의 집합 Ready Queue : 현재 메모리 내에 있으면서 CPU를 잡아서 실행되기를 기다리는 프로세스의 집합 Device Queue : Device I/O 작업을 대기하고 있는 프로세스의 집합 각각의 Queue에 프로세스들을 넣고 빼주는 스케줄러에도 크게 세 가지 종류가 존재한다. 장기스케줄러(Long-term scheduler or job scheduler) 메모리는 한정되어 있는데 많은 프로세스들이 한꺼번에 메모리에 올라올 경우, 대용량 메모리(일반적으로 디스크)에 임시로 저장된다. 이 pool 에 저장되어 있는 프로세스 중 어떤 프로세스에 메모리를 할당하여 ready q.. 2021. 10. 22. 멀티 스레드 멀티 스레딩의 장점 프로세스를 이용하여 동시에 처리하던 일을 스레드로 구현할 경우 메모리 공간과 시스템 자원 소모가 줄어들게 된다. 스레드 간의 통신이 필요한 경우에도 별도의 자원을 이용하는 것이 아니라 전역 변수의 공간 또는 동적으로 할당된 공간인 Heap 영역을 이용하여 데이터를 주고 받을 수 있다. 그렇기 때문에 프로세스 간 통신 방법에 비해 스레드 간의 통신 방법이 훨씬 간단하다. 심지어 스레드의 context switch는 프로세스의 context switch와는 달리 캐시 메모리를 비울 필요가 없기 때문에 더 빠르다. 따라서 시스템의 throughput이 향상되고 자원 소모가 줄어들며 자연스럽게 프로그램의 응답 시간이 단축된다. 이러한 장점때문에 여러 프로세스로 할 수 있는 작업들을 하나의 프.. 2021. 10. 22. 프로세스와 스레드의 차이 프로세스(Process) 프로세스는 실행 중인 프로그램으로 디스크로부터 메모리에 적재되어 CPU의 할당을 받을 수 있는 것을 말한다. 운영체제로부터 주소 공간, 파일, 메모리 등을 할당받으며 이것들을 총칭하여 프로세스라고 한다. 구체적으로 살펴보면 프로세스는 매개변수, 복귀 주소와 로컬 변수와 같은 임시 자료를 갖는 프로세스 스택과 전역 변수들을 수록하는 데이터 섹션을 포함한다. 또한 프로세스는 프로세스 실행 중에 동적으로 할당되는 메모리인 힙을 포함한다. 프로세스 제어 블록(Process Control Block, PCB) PCB는 특정 프로세스에 대한 중요한 정보를 저장하고 있는 운영체제의 자료구조이다. 운영체제는 프로세스를 관리하기 위해 프로세스의 생성과 동시에 고유한 PCB를 생성한다. 프로세스는.. 2021. 10. 22. 객체 지향 프로그래밍이란 무엇인가 객체 지향 프로그래밍(Object Oriented Programming). 학교 수업에서도 회사 면접에서도 중요하게 다루지만 객체 지향 프로그래밍이 뭔지 아직도 정확히 이해하지 못했다. OOP에 대해 한번 알아보자. 객체 지향 프로그래밍이란 인간 중심적 프로그래밍 패러다임이다. 현실 세계를 프로그래밍으로 가져와서 사용하는 것을 말한다. 현실 세계의 사물들을 객체라고 보고 그 객체로부터 개발하고자 하는 어플리케이션에 특징들을 뽑아와 프로그래밍 하는 것이다. 이것을 추상화라고 한다. OOP로 코드를 작성하면 재사용성이 높다. 로직을 라이브러리로 만들어 두면 계속해서 사용할 수 있고, 신뢰성을 확보할 수 있다. 또한 각각의 라이브러리의 예외상황을 잘 만들어 두면 버그 발생도 줄일 수 있고, 내부의 세밀한 동작.. 2021. 10. 12. 웹 통신의 큰 흐름 https://www.google.com/을 을 접속하면 무슨 일이 일어날까? 면접 단골 문제라고 합니다. 브라우저는 URL에 적힌 값을 파싱해서 HTTP Request Message를 만들고, OS에 전송 요청을 합니다. 이 때, Domain으로 요청을 보낼 수 없기 떄문에 DNS Lookup을 수행합니다. DNS 룩업 과정은 도메인에 매칭되는 ip를 찾는 과정입니다. DNS Lookup은 루트 도메인서버에서부터 서브도메인서버 순으로 Domain을 찾게됩니다. OS에 전송 요청한 것은 프로토콜 스택이라는 OS에 내장된 네트워크 제어용 소프트웨어에 의해 패킷에 담기고 패킷에 제어정보를 덧붙여 LAN 어댑터로 전송하고, LAN 어댑터는 이를 전기신호로 변환시켜 송출합니다. 패킷은 스위칭, 허브 등을 경유하.. 2021. 10. 4. 이전 1 2 3 4 5 6 다음