본문 바로가기

분류 전체보기113

[TIL 39일차]비례 배분 스케줄링 비례 배분(Proportional Share) 스케줄러, 혹은 공정 배분(fair a share)이라고 하는 유형의 스케줄러에 대해 봐보자.반환 시간이나 응답 시간을 최적화 하는 대신 스케줄러가 각 작업에게 CPU의 일정 비율을 보장하는 것이 목적이다.비례배분 스케줄링의 좋은 예가 추첨 스케줄링(lottery scheduling)으로 알려져 있다.기본 아이디어는 간단하다.다음 실행될 프로세스를 추첨을 통해 결정한다. 더 자주 수행되어야 하는 프로세스는 당첨 기회를 더 많이 준다.기본 개념 : 추첨권이 당신의 지분이다.추첨권(티켓)이라는 기본적인 개념이 추첨 스케줄링의 근간을 이룬다. 추첨권을 경품권의 개념과 유사하다.추첨권은 특정 자원에 대한 프로세스에게 할당될 몫을 나타낸다. 프로세스가 소유한 티켓 개.. 2024. 8. 27.
[TIL 38일차] OS의 스케줄링 전에 적었던 운영체제에 가상화에 제한적 직접 실행원리를 어느정도 이해했다면 이제 스케줄링을 봐보자.스케줄링은 정책에 의해서 돌아가는데 여기서 말하는 정책 -> 원칙(discipline)이라고도 표현가능하다.스케줄링의 기원은 컴퓨터의 등장 이전으로 간다.이거는 생산 관리분야에서 나온 개발방법이다.생산 공정이나 기타 많은 인간의 행동에서 스케줄링이 필요하고 효율성 향사등, 공통된 문제가 존재한다.워크로드에 대한 가정먼저 프로세스 동작에 대한 몇 가지 가정을 하고 시작하는데  프로세스가 동작하는 일련의 행위를 워크로드라 한다.이는 매우 중요한 부분이다. 알고가자.스케줄링의 평가항목1. 반환 시간(turnaround time)이라는 스케줄러를 평가하는 기준작업 반환 시간은 작업이 완료된 시각에서 작업이 도착한 .. 2024. 8. 25.
[TIL 37일차] 비동기 동기와 비동기에 대한 이해동기 입출력은 전송 시작       전송 완료        수신 시작     수신완료send 호출     send 반환        recv호출     recv 반환TCP애서는 send로 출력버퍼에 데이터를 다 보내면 데이터가 전송이 되었다는 가정이 들어가 있다. 이는 TCP의 특성 때문에 그렇다.recv는 반환이 될때에 수신이 완료되었다고 판단한다.입출력 함수의 호출 및 반환의 시기가 데이터 전송 시작 및 완료의 시기와 일치하는 방식의 함수호출, 따라서 함수가 호출된 동안에는 다른 작업을 할 수가 없다.비동기 입출력은전송 시작        전송 완료        수신 시작      수신 완료send 호출 및 반환                         recv 호출 및 반환.. 2024. 8. 25.
[TIL 36일차] 쓰레드 프로그래밍 이전까지는 epoll 기반으로 서버를 구성해봤다.전에 해봤던  멀티 프로세스 방식의 단점 보완되었다고 보면 된다.개인적으로 생각하기에는 요즘은 쓰레드가 대세인 것 같다.멀티쓰레드 기반의 서버전체적인 모델을 멀티쓰레드로 가져갈건지 epoll로 가져갈건지 정해야 한다.요즘 뭔가 쓰레드가 대세라 쓰레드가 더 좋은거 처럼 효율이 좋을거 같지만 실제로는 멀티 플렉싱 방법이 대체적으로 한 프로세스에서 돌아가기에 더 많이 사용된다.그러면 왜 배우냐 싶은데 혼합되서 사용되는 윈도우의 IOCP에서 쓰레드가 사용되기에 알고가면 좋다.원래 기존의 프로세스는 하나의 흐름을 전담했지만 쓰레드라는 개념이 나오면서 프로세스는 쓰레드를 담는 바구니가 되었다.하나의 프로세스 내에서 메인 함수를 호출해서 실행해갈수있는 쓰레드를 담는 .. 2024. 8. 15.