반응형 운영체제6 [운영체제] OS의 스케쥴링의 방식과 멀티레벨 스케쥴링, 스레드 스케쥴링 (PCS, SCS) - CPU Scheduling CPU SchedulingCPU가 실행할 프로세스를 선택하는 행위를 CPU 스케줄링이라고 한다.Basic ConceptsCPU가 놀지 않고 효율을 극대화하기 위해 스케줄링 알고리즘이 필요하다.레디 큐(ready queue) 에 여러 프로세스가 대기 중일 때(멀티프로그래밍 환경에서) 의미가 있다.Instruction CycleCPU executionI/O wait : 이때 CPU는 사용되지 않음프로세스는 CPU burst → I/O burst → ... 형태로 번갈아가며 수행된다.이때 CPU burst의 분배가 스케줄링의 핵심이다.CPU SchedulerShort-term Scheduler레디 큐에서 실행할 프로세스를 선택하고, CPU 실행 권한을 부여한다.프로세스 상태 변화에 따라 스케줄러가 작동하는 경.. 2025. 4. 15. [운영체제] OS의 스레드 종류(User, Kernel)와 관련 아키텍처 소개 운영체제 스레드 (Threads)Multithreaded Server 아키텍처서버는 accept()라는 블로킹 함수를 실행해서 대기하다가, 요청을 받으면 소켓을 할당을 해서 read()라는 블로킹 함수로 읽을 수 있다. 서버는 클라이언트 연결요청을 기다린다. 클라이언트가 보낸 요청을 읽어서 수행한다.request는 이미 연결이 성공 후 보내는 것이다.서버는 read()함수를 이용해서 서버가 처리를 해준다. → task → 별도의 스레드로 테스크를 할당한다.accept(), read()는 동시에 처리해도(순서가 지켜지지 않아도) 되므로 메인 스레드는 항상 accept()하면서 concurrent하게 진행이 된다.장점Responsiveness: 프로세스의 일부가 block 되더라도 다른 task는 진행된다... 2025. 4. 13. [운영체제] OS의 프로세스(Process)의 개념과 구조, IPC 매커니즘 프로세스같은 프로그램을 실행하는 프로세스는 여러 개 있을 수 있다.프로그램의 종류Batch System: JobsTime Shared System: User Programs, TasksJob = Process프로세스는 실행 중인 프로그램이다.하나의 프로세스 실행은 순차적으로 진행되며, 레디 큐(Ready Queue)에 들어가 선택될 때까지 대기한다.프로세스의 내부 구성프로그램 코드: 텍스트 영역CPU 레지스터: 현재 프로세스의 실행 정보 (PC: 다음 명령 주소)Stack: 임시 데이터를 저장하는 공간 (액티베이션 레코드 포함)함수 파라미터, 반환값, 로컬 변수 포함Data Section: 전역 변수 및 static 변수Heap: 프로세스 종료 시까지 유지, 동적 메모리 할당 (malloc 등 시스템 콜.. 2025. 4. 13. [운영체제] OS의 구조와 서비스 종류 소개, 시스템 프로그램과 시스템 콜 소개 OS의 전체적인 구조 Hardware (하드웨어)컴퓨터의 물리적 자원 (CPU, 메모리, I/O 장치 등Operating System (운영체제)하드웨어와 사용자 프로그램 사이의 중개자 역할 수행Services (운영체제가 제공하는 기능)이 글에서 다루는 운영체제의 서비스(기능)으로 아래에 기술하겠다.System Calls (시스템 콜)사용자 프로그램이 운영체제의 기능을 요청하는 인터페이스예: open(), read(), write(), fork(), exec() 등User Interfaces (사용자 인터페이스)GUI (Graphical User Interface): 그래픽 기반 인터페이스Batch: 명령어 집합을 자동으로 실행Command Line: 텍스트 명령어를 통해 시스템과 상호작용User an.. 2025. 4. 13. [운영체제] OS의 개념과 구조, 컴퓨터 시스템 아키텍처 소개 운영체제란?운영체제는 실행되는 프로그램이다. OS도 실행되는 프로그램이며, 일반적인 응용프로그램과는 논리적인 위치 관계에서 차이가 있다.OS는 사용자와 하드웨어 사이에 위치하여 다음과 같은 역할을 수행한다.리소스 할당자: 시스템 리소스를 사용자 및 프로세스에게 효율적으로 할당한다.제어 프로그램: 애플리케이션의 실행을 제어하며, 비정상적인 리소스 사용을 방지한다. (예: 프로그램 강제 종료)운영체제가 하고자 하는 바사용자 프로그램을 실행시킨다. 즉, OS 위에서 동작한다.컴퓨터 시스템 리소스를 쉽게 사용할 수 있도록 돕는다.자원(Resource) 관리: 운영체제의 핵심 기능 중 하나이다.리소스를 관리해주는 OS응용프로그램이 직접 리소스에 접근하지 않고, 반드시 OS를 통해 요청하도록 설계된다.만약 OS가.. 2025. 4. 13. [C언어] File I/O (Unix vs Standard IO)관련 시스템 콜(System call) 파일 시스템과 I/O 개념File Table (OS)운영체제는 각 프로세스의 열려있는 파일들을 관리하기 위한 파일 테이블을 유지한다. 파일의 인덱스는 실제 파일명이 아니라 File Descriptor (fd)로 관리된다.각 파일 테이블의 엔트리는 다음과 같이 구성된다.inodefile offset (파일 위치)Access modes 이 포스트에서는 Unix IO의 파일 입출력 관련 System calls를 소개한 후, standard IO 라이브러리와 함수들을 소개 후, Unix와 standard IO를 비교하면서 장단점을 정리합니다.File Descriptor (fds)File Descriptor(fds)는 0부터 시작하는 정수 값이며, 실행 중인 프로세스가 파일을 열 때 부여된다. 하나의 프로세스 내.. 2025. 3. 2. 이전 1 다음