총 17개
-
파이썬 Thread Programming 소개2025.11.121. 스레드(Thread)의 개념 스레드는 프로세스의 실행 단위이다. 파이썬 프로그램은 기본적으로 하나의 메인 스레드에서 순차적으로 코드를 실행한다. 병렬 실행을 위해서는 별도의 스레드를 생성해야 한다. 파이썬에서 멀티 스레드 구현은 threading 모듈(고수준) 또는 thread 모듈(저수준)을 사용하며, thread 모듈은 deprecated되어 threading 모듈 사용을 권장한다. 2. Thread Programming의 장단점 장점으로는 전역변수를 이용한 메모리 공유로 효율적인 메모리 사용이 가능하고, 철저한 작업 분리...2025.11.12
-
Pintos Project 1 한국어 설명서 (design report) - Alarm clock, Priority Scheduling, Advanced Scheduling2025.01.161. thread Pintos에서는 thread creation과 thread completion, Round-Robin 방식의 thread switching(simple scheduler)을 이미 구현해 두었다. kernel thread의 struct는 'threads/thread.h'에 선언되어 있으며, thread structure은 4kB page를 차지한다. struct thread는 page의 시작부분부터 공간을 차지하고, 나머지 부분은 thread의 stack을 위해 이용된다. 따라서 kernel stack을 위한 공간...2025.01.16
-
os 기출문제2025.01.201. Process Synchronization 1. 현재 count 변수의 값이 5이고, 두 프로세스 producer와 consumer가 각각 다음과 같이 (interleaved) 실행된다고 할 때, 마지막으로 저장되는 counter 변수의 값은 6입니다. 2. 다른 프로세스(또는 스레드)들과 공유하는 자원(변수, 파일 등)을 다루는 코드 영역을 일컫는 용어는 critical section입니다. 3. non-preemptive scheduling을 설명하는 말이 아닌 것은 2) The scheduler can interrupt ...2025.01.20
-
Pintos Project 1 final report - Alarm clock, Priority Scheduling, Advanced Scheduling2025.01.161. Alarm clock 기존의 busy-waiting 방식을 sleep/wake-up 방식으로 변경하는 것은 시스템 자원을 효율적으로 사용하는 데 매우 중요하다. busy-waiting 방식은 프로세서가 일정한 시간동안 아무 작업도 하지 않고 반복적으로 상태를 확인하는 방법으로, 타이머나 조건이 충족될 때까지 CPU가 루프를 반복하며 기다린다. 이로 인해 CPU 사이클을 낭비하게 됨으로써 CPU 자원이 불필요하게 낭비되고, 전력 소비를 증가시킬 수 있다. 반면, sleep/wake-up 방식은 프로세서가 작업을 기다리는 동안 유...2025.01.16
-
니트디자인 봉제방법 니트봉제법2025.05.091. 니트디자인 니트 디자인에는 봉제 방법에 따라 Cut & sewn, Cut & linking, fashioning 등의 방법이 있다. Cut & sewn 방법은 니트 원단을 재단하여 봉제하는 방식이며, Cut & linking 방법은 니트 원단을 재단하지 않고 링킹 기계로 연결하는 방식이다. Fashioning 방법은 니트 원단을 성형하여 봉제하는 방식이다. 2. 니트 봉제법 니트 봉제법에는 406 Two-needle bottom cover stitch, 514 four thread overedge, 516 five thread...2025.05.09
-
쓰레드 구현 모델과 쓰레드 폴링에 대해 조사하시오2025.05.151. 쓰레드 구현 모델 쓰레드 구현 모델은 운영체제에서 사용되는 것으로 사용자 수준, 커널 수준, 두 수준을 혼합한 방식이 있다. 사용자 수준 쓰레드는 커널 쓰레드를 지원하지 않는 운영체제에서 사용되며 다대일 쓰레드 매핑이다. 커널 수준 쓰레드는 사용자 수준 쓰레드가 가지는 한계를 해결하기 위해서 사용되기 시작했으며 일대일 쓰레드 매핑을 지원한다. 혼합형 쓰레드는 여러 개의 사용자 수준 쓰레드에 여러 개의 커널 쓰레드가 매핑되는 다대다 쓰레드 모델이다. 2. 쓰레드 폴링 쓰레드 폴링은 혼합형 쓰레드에서 사용되며 과부하를 줄여 프로그...2025.05.15
-
Pintos Project 2 한국어 설명서 (design report) - User Program, System Call2025.01.161. Process Execution Procedure 프로젝트 2에서는 user program을 실행시키는 것이 주요 내용이다. main() 함수에서 command line을 읽어들이고 parsing한 후 run_action() 함수를 통해 실행할 프로그램을 process_execute()로 전달한다. process_execute()는 thread_create()를 호출하여 새로운 kernel thread를 생성하고, 이 thread는 start_process()를 실행한다. start_process()에서는 load() 함수를 ...2025.01.16
-
운영체제 프로세스 및 스레드 레포트2025.11.121. PCB와 문맥교환 PCB(Process Control Block)는 프로세스의 상태와 문맥을 저장하는 자료구조입니다. 문맥교환은 실행 중인 프로세스가 인터럽트나 시스템 호출로 중단될 때 현재 상태를 PCB에 저장하고, 다음 프로세스를 준비 큐에서 선택하여 PCB에서 복구한 후 실행하는 과정입니다. 이를 통해 여러 프로세스가 CPU를 공유하며 실행될 수 있습니다. 2. 프로세스 상태 변화 프로세스는 new, ready, running, waiting, suspend ready, suspend waiting, terminated의...2025.11.12
-
쓰레드 구현 모델과 쓰레드 폴링에 대한 조사2025.01.271. 쓰레드 구현 모델 쓰레드 구현 모델에는 다중 쓰레드 모델, 많은 쓰레드 모델, 쓰레드 풀 모델 등이 있다. 다중 쓰레드 모델은 하나의 프로세스 내에서 여러 쓰레드가 동시에 실행되어 작업을 병렬로 처리하여 성능을 향상시킨다. 많은 쓰레드 모델은 다중 쓰레드 모델과 유사하지만, 생성된 쓰레드 수가 많아질수록 시스템 자원 제한으로 인해 실제 동시 실행되는 쓰레드 수가 제한될 수 있다. 쓰레드 풀 모델은 미리 정의된 쓰레드 풀에서 필요한 쓰레드를 가져와 작업을 처리하고, 사용이 끝난 쓰레드를 반환하여 다시 활용한다. 이 방식은 쓰레드...2025.01.27
-
쓰레드 구현 모델과 쓰레드 폴링에 대해 조사하시오.2025.01.171. 쓰레드 쓰레드는 프로그램 내에서 동시에 여러 작업을 처리하기 위한 실행 단위를 의미한다. 프로세스는 완전히 독립된 두 개의 프로그램의 실행을 위한 것이지만, 쓰레드는 하나의 프로그램 내에서 둘 이상의 실행을 위하기 때문에 독립시키는 구조가 필요하지 않다. 그래서 쓰레드를 이용하면 하나의 프로세스 내에서 여러 작업을 동시에 수행할 수 있으므로 프로그램의 성능과 효율성이 향상된다. 2. 쓰레드의 구현 모델 쓰레드는 크게 두 가지 방법으로 구현될 수 있다. 유저 레벨 쓰레드는 프로그램이 직접 쓰레드를 관리하는 방법으로 쓰레드를 구현...2025.01.17
