반응형

2024/11 36

[OSTEP] 병행성 CH33 - 34

CH33 이벤트 기반의 병행성 - 고급 멀티 쓰레드 기반 프로그래밍이 어려운 이유는 아래 두 가지이다 1) 멀티 쓰레드 기반 프로그래밍은 어렵다 자료 구조를 락으로 보호하는 것을 잊을 수 있고, 교착 상태나 혹은 다른 문제들이 발생할 수 있다 2) 개발자가 쓰레드 스케줄링에 대한 제어권을 가지고 있지 않다 멀티 쓰레드 프로그래밍에서는 운영체제가 CPU 스케줄링에 대한 전권을 갖는다 핵심 질문 - 어떻게 쓰레드 없이 병행 서버를 개발할까쓰레드 없이 병행 서버를 구현할 때, 어떻게 병행성을 유지하면서 각종 문제들을 피할 수 있을까?33.1 기본 개념 - 이벤트 루프 이벤트 기반의 병행성은 특정 사건, "이벤트" 의 발생을 대기하고, 사건이 발생하면, 사건의 종류를 파악한 후 추후 작업을 진행한다 이 과정에서..

[정글] Week08-09 PintOS 키워드 정리

Week08 PintOS 키워드 정리 개념, 사용 이유, 코드를 이용한 예시, (Optional) 장단점, 단점 보완하는 개념 CPU Scheduling 알고리즘https://helloahram.tistory.com/96 - RR 까지 https://helloahram.tistory.com/99 - MLFQ 이후 CPU Scheduling 은 한 프로세스가 CPU 를 사용하는 동안 다른 프로세스가 대기하는 상황에서CPU 를 효율적으로 활용할 수 있도록 우선순위를 정하고, 프로세스들을 적절하게 배치하는 기술이다 스케줄링 평가 항목 Scheduling Metric 반환 시간 : 프로세스가 생성된 시점부터 종료될 때까지의 전체 시간응답 시간 : 사용자가 요청한 시점부터 첫 번째 응답이 도착할 때까지 시간CPU..

[정글] PintOS - Gitbook

원본 https://casys-kaist.github.io/pintos-kaist/ 해석본 https://www.notion.so/PROJECT-1-THREADS-1305646decf681049375f6bff9e915fd PROEJCT 1 : THREADSIntroduction 컴파일은 threads 디렉토리에서 진행되어야 한다 Background 과제의 쓰레드 시스템 코드를 읽고 이해해야 한다 🐣 쓰레드 Thread - 프로세스 내에서 동시에 실행될 수 있는 작은 단위, 프로세스의 공유 자원을 접근할 수 있다 쓰레드가 생성될 때, 스케줄링의 대상이 되는 새로운 문맥 Context 이 생성된다 thread_create() 의 인자로 실행하고자 하는 함수를 넣으면 문맥에서 실행된다 쓰레드는 해당 문맥에서..

[OSTEP] 병행성 CH31 - CH32

CH31 세마포어 Semaphore다양한 범주의 병행성 문제 해결을 위해서는 락과 조건 변수가 모두 필요하다 (이 사실을 Dijkstra 가 발견함)Dijkstra 와 동료들이 모든 다양한 동기화 관련 문제를 한번에 해결할 수 있는 기법을 개발해 보면서 세마포어가 탄생했다 세마포어는 락과 컨디션 변수로 모두 사용할 수 있다 🐣 세마포어는 자원의 사용 가능 여부를 숫자로 관리하여 여러 쓰레드가 안전하게 공유 자원에 접근할 수 있도록 제어하는 역할을 한다 🐣 세마포어는 일종의 추상 자료형이고, 자원의 개수를 나타낼 수 있다, 공유 자원을 획득하고 반납하는 방식을 나타낼 수 있음 핵심 질문 - 세마포어를 어떻게 사용하는가락과 컨디션 변수 대신에 세마포어를 사용하는 방법은 무엇인가? 세마포어의 정의는 무엇인..

반응형