본문 바로가기

전체 글

CPU 스케줄링 Reporting Date: May. 09, 2025단기(CPU) 스케줄러에 대해 다루고자 한다.목차01 다중 프로그래밍02 CPU 스케줄러03 디스패처 모듈04 스케줄러 기준05 알고리즘06 예제 01 다중 프로그래밍Multiprogramming 1 . 주요 목적CPU 이용률(Utilization)을 극대화하는 것이 주요 목적이며,이를 위해 OS는 항상 실행 가능한 프로세스를 유지하려고 한다.OS의 핵심 기능 중 하나인 CPU 스케줄링은 여러 프로세스 중에서 어떤 프로세스에 CPU를 할당할지를 결정하는 메커니즘으로, OS 설계에서 매우 중요한 요소이다.프로세스의 실행은 일반적으로 CPU 실행(CPU Burst)과 입출력 대기(I/O Wait) 사이클로 반복된다.입출력 중심 프로그램은 일반적으로 짧.. 더보기
스레드 구조 및 구현 방식 Reporting Date: May. 07, 2025스레드 구조 및 구현 방식에 대해 다루고자 한다.목차01 원도우 스레드02 스레드의 주요 자료 구조03 리눅스 스레드 01 윈도우 스레드Windows Threads Windows는 Microsoft에서 개발한 OS.모든 Windows 기반 OS는 공통적으로 Windows API를 기반으로 응용 프로그램을 실행한다.Windows 98Windows NTWindows 2000Windows XPWindows 7 등여기서 실행되는 응용 프로그램은 프로세스 형태로 구동되며, 각 프로세스는 하나 이상의 스레드를 가질 수 있다. 스레드는 실행의 기본 단위로, 다음과 같은 주요 구성 요소를 갖는다: 구성요소설명스레드 ID, Thread ID스레드를 유일하게 식별하기.. 더보기
스레드 문제 Reporting Date: May. 02, 2025스레드 문제에 대해 다루고자 한다.목차01 스레드 문제02 fork()와 exec()03 신호 처리04 스레드 취소05 스레드 풀06 스레드별 데이터07 스케줄러 활성화 기법 01 스레드 문제Threading Issues스레드를 OS 또는 사용자 수준에서 효과적으로 관리 및 실행하기 위해 다음과 같은 주요 이슈들이 존재한다. ① fork() 및 exec() 시스템 호출다중 스레드 환경에서 fork()를 호출하면 부모 프로세스의 메모리를 복제하지만, 스레드까지 복제하지는 않음. 따라서 fork() 후 어떤 스레드만 남을지 주의해야 한다.exec()는 새로운 프로그램으로 현재 프로세스를 대체하므로, 기존 스레드는 모두 종료된다. ② 스레드 취소실행 중.. 더보기
스레드 Reporting Date: April. 30, 2025스레드에 대해 다루고자 한다.목차01 스레드 라이브러리02 P 스레드03 Windows 스레드04 JAVA 스레드05 암묵적 스레드 01 스레드 라이브러리Thread Library프로그래머가 스레드 생성 및 관리할 수 있도록 API를 제공하는 소프트웨어 구성 요소로, 일반적으로 사용자 공간에 존재한다.이러한 라이브러리는 구현 방식에 따라 크게 두 가지로 나눌 수 있다. ① OS의 커널 지원 없이 전적으로 사용자 공간에서 구현스레드 라이브러리의 코드와 자료 구조가 모두 사용자 공간에 위치하며, 라이브러리 함수 호출은 시스템 콜이 아닌 일반 함수 호출로 처리된다.따라서 시스템 콜에 따른 오버헤드가 줄어드는 장점이 있지만, 커널의 지원이 없으므로 여러.. 더보기
다중 코어 프로그래밍 Reporting Date: April. 18, 2025다중 코어 프로그래밍에 대해 다루고자 한다.목차01 다중 코어 프로그래밍02 병렬 실행03 암달의 법칙04 사용자 스레드05 커널 스레드06 다중 스레드 모델 01 다중 코어 프로그래밍Multicore Programming멀티코어 또는 멀티프로세서 시스템에서 성능을 극대화할 수 있는 기회를 제공하지만, 동시에 여러 가지 도전 과제를 수반한다. 병렬성을 효과적으로 활용하기 위해서는 다음의 다섯 가지 주요 문제를 해결해야 한다. 1 . 태스크 인식 Identifying Tasks응용 프로그램 내에서 병행 실행이 가능한 독립적인 작업 단위인태스크를 정확히 식별해야 병렬 처리의 기반을 마련할 수 있다. 2 . 작업 균형 맞추기Balance각 코어에.. 더보기
다중 스레드 프로그래밍 Reporting Date: April. 16, 2025다중 스레드 프로그래밍에 대해 다루고자 한다.목차01 서론02 프로세스 모델의 한계03 스레드 개발 동기04 스레드05 스레드의 장점 01 서론 프로세스가 아닌 스레드를 중심으로, 다중 스레드 컴퓨터 시스템의 기초가 되는 CPU 사용의 기본 단위인 스레드에 대해 학습한다.→ 이는 하나의 프로그램이 여러 개의 명령어 실행 흐름을 동시에 가질 수 있도록 한다.멀티스레드 애플리케이션 설계의 장점과 과제를 이해한다.→ 예: 자원 공유의 효율성, 동기화 문제 등암묵적 스레딩을 지원하는 여러 전략을 탐구한다.→ 예: OpenMP, 스레드 풀, 작업 스케줄러 등Windows와 Linux OS에서 스레드를 어떻게 지원하는지 알아본다.Pthreads API, W.. 더보기
분산 시스템 간의 통신 Reporting Date: April. 11, 2025분산 시스템 간의 통신에 대해 다루고자 한다.목차01 파이프02 파이프의 종류03 분산 시스템에서의 통신 방식04 소켓05 RPC06 RMI 01 파이프Pipe공유 메모리와 메시지 패싱은 IPC을 위한 대표적인 방법이다. 이 두 방식은 일반적으로 가장 널리 사용된다.이 외에도 파이프라는 특별한 방식도 존재한다. 한 프로세스의 출력 데이터를 다른 프로세스의 입력으로 직접 전달하는 방식으로, 특히 부모-자식 프로세스 간 통신이나 명령어 파이프라인 처리에 자주 사용된다. 파이프는 초창기 유닉스 개발자들이 통신의 단순화를 위해 도입했지만,OS 내부에서 프로세스 간 연결, 동기화, 버퍼링 등의 처리를 구현하는 것은 결코 단순하지 않았다고 전해진다.하나의 .. 더보기
OS 협력 Reporting Date: April. 09, 2025OS협력에 대해 다루고자 한다.목차01 서론02 IPC03 생산자-소비자 문제04 공유 메모리05 매세지 패싱06 통신07 동기화08 버퍼링09 생산자-소비자 문제 해결10 윈도우에서 프로세스 통신 01 서론OS에서 프로세스는 다른 프로세스들과상호작용 여부에 따라 크게 두 가지로 나뉜다. 1 . 독립 프로세스Independent Process다른 프로세스에 영향을 주지도, 받지도 않는 프로세스이다.즉, 시스템 내에서 완전히 독자적으로 실행되며, 정보를 공유하지 않는다. 2 . 협력 프로세스Cooperating Processes다른 프로세스들과 정보를 주고받거나, 행동에 영향을 주는 프로세스이다.예를 들어, 웹 서버와 데이터베이스 서버 간의.. 더보기