본문 바로가기

전체 글

스레드 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다른 프로세스들과 정보를 주고받거나, 행동에 영향을 주는 프로세스이다.예를 들어, 웹 서버와 데이터베이스 서버 간의.. 더보기
OS 메세지 Reporting Date: April. 04, 2025OS 메세지에 대해 다루고자 한다.목차01 스레드02 프로세스 스케줄03 스케줄러04 문맥교환05 모바일 시스템의 멀티태스킹06 프로세스 주요 작업07 프로세스 생성의 4단계08 예제09 프로세스 종료10 Android 프로세스11 Chrome 브라우저 01 스레드Threads지금까지는 프로세스가 하나의 실행 스레드만을 가지고 있다고 가정해왔다. 하지만 이제는 하나의 프로세스가 여러 개의 프로그램 카운터(PC)를 갖는 경우를 생각해볼 수 있다. 이는 하나의 프로세스가 여러 위치에서 동시에 실행될 수 있음을 의미하며, 스레드는 이러한 여러 제어 흐름을 의미한다.따라서 이를 위해서는 각 스레드의 세부 정보를 저장할 수 있는 별도의 저장소가 필요하며,.. 더보기
OS 구현 Reporting Date: April. 02, 2025OS 구현에 대해 다루고자 한다.목차01 시스템 디버02 성능 조정03 시스템 구현04 OS 생성05 시스템 부팅06 통신 구조07 프로세스08 C 프로그램의 메모리 구조 01 시스템 디버깅(Debugging)OS는 실행 중에 다양한 H/W 또는 S/W 오류로 인해 에러가 발생할 수 있다. 시스템 디버깅이란 이러한 에러(Error) 또는 버그(Bug)를 탐지하고 수정하는 행위를 말한다.프로세스가 비정상적으로 종료될 경우, OS는 해당 프로세스가 사용하던 메모리의 상태를 기록한 코어 덤프(Core Dump)를 생성한다. 이 파일은 프로그래머가 디버거라는 분석 도구를 사용해프로세스의 코드와 메모리 상태를 상세히 분석하도록 도와준다.뿐만 아니라, OS.. 더보기
OS 설계 구조 Reporting Date: March. 28, 2025OS 설계 구조에 대해 다루고자 한다.목차01 서론02 모놀리식 커널03 계층적 접근 방식04 UNIX05 마이크로 커널06 적재가능한 커널 모듈07 하이브리드 시스템08 IOS09 Android 01 서론 1 . 정책 결정 (Policy Decision) OS에서 정책 결정은 자원 할당 문제에서 매우 중요하다.CPU, 메모리, 입출력 장치 등 누가, 언제, 얼마나 사용할지를 결정하는 것은 OS의 핵심 역할 중 하나이며, 매번 자원 요청 시 정책에 따라 다시 이루어진다. 2 . 범용 OS의 구조간단한 구조MS-DOS단일 계층, 커널과 사용자 프로그램 경계 불명확제한적 구조UNIX모놀리식 구조, 계층 일부 있지만 명확히 구분되지 않음계층적 .. 더보기