All'alba vincerò

At dawn, I will win!

전체보기 349

평균 대기 시간(Average Waiting Time) : 프로세스들 모두 실행되기까지의 대기 시간의 평균

평균 대기 시간 (Average Waiting Time): 프로세스 여러 개가 실행될 때, 이 프로세스들 모두 실행되기까지의 대기 시간의 평균스케줄링의 성능은 “평균 대기 시간”으로 평가함평균 대기 시간 = 프로세스들의 대기 시간의 합 / 프로세스 총 개수ex) 프로세스 A : 실행까지 5초 기다림 프로세스 B : 실행까지 4초 기다림 프로세스 C : 실행까지 0초 기다림 ⇒ 평균 대기 시간: (5 + 4 + 0) / 3 = 3초 Burst Time (버스트 타임): 프로세스가 CPU를 사용하는 시간프로세스가 CPU를 점유해서 실제로 처리하는 데 걸리는 시간ex) 프로세스 A는 CPU를 5초 동안 써야 함 → 이 5초가 바로 Burst Time = 5 예제1. Burst Time이 긴 프로세스 ..

CS 2025.05.02

다중 큐(Multiple Queue) : 프로세스의 우선 순위를 보고 그에 맞는 준비 큐에 넣음

다중 큐 (Multiple Queue)프로세스가 생성되면 준비 상태로 전환됨 → 준비 상태에서 CPU를 기다리고 있는 프로세스들은 CPU 스케줄러에 의해 실행 상태로 전환됨 → 실행 상태에 있는 프로세스는 다음과 같이 상태가 전환됨CPU 할당 시간이 다 되면 → 준비 상태로 전환됨I/O 작업이 있으면 → 대기 상태로 전환됨작업이 끝났으면 → 완료 상태로 전환됨프로세스 상태 중 준비 상태와 대기 상태는 자료구조 큐(Queue)로 관리됨 큐(Queue): 마트 계산대처럼 먼저 온 순서대로 처리되는 방식프로세스가 실행 상태에서 준비 상태로 돌아갈 때, 운영체제는 프로세스의 우선 순위를 보고 프로세스를 그에 맞는 준비 큐에 넣음큐에는 프로세스의 정보를 갖고 있는 PCB(Process Control Block..

CS 2025.05.02

CPU 스케줄링(CPU) : 프로그램 중 어떤 걸 먼저 실행할지 정하는 방법

CPU 스케줄링: 컴퓨터가 여러 프로그램 중 어떤 걸 먼저 실행할지 정하는 방법 프로그램 실행 → 메모리에 프로세스가 생성됨 → 프로세스 내에는 1개 이상의 쓰레드가 있음 → 프로세스들은 CPU를 차지하기 위해 운영체제의 명령을 기다림 → 운영체제는 모든 프로세스에게 CPU를 할당/해제함⇒ CPU 스케줄링CPU Burst: CPU를 할당받아 실행하는 작업I/O Burst: 입출력 작업 CPU 스케줄링에서 스케줄러(운영체제)가 고려해야 할 사항어떤 프로세스에게 CPU 리소스를 줘야 하는가?메모리에는 수많은 프로세스들이 있는데, 여기서 어떤 프로세스에게 CPU 사용권을 줘야 하는지 고려해야 함CPU를 할당받은 프로세스가 CPU를 얼마 동안 사용해야 하는가?오늘날에는 시분할 처리 방식을 사용함 → 여러 프..

CS 2025.05.02

쓰레드 (Thread)

쓰레드 (Thread): 운영체제가 프로세스 안에서 작업을 처리하는 더 작은 실행 단위 운영체제가 작업을 처리하는 단위는 프로세스 내의 쓰레드임 쓰레드 등장 이유프로세스 단위 실행의 오버헤드와 느린 통신 문제를 해결하기 위해 ⇒ 하나의 프로세스 안에서 여러 개의 쓰레드를 만들어서 작업 분산 사용자가 운영체제에게 작업을 요구하면, 그만큼 프로세스의 수가 늘어남 → 프로세스가 생성되면 PCB가 생성되고, 메모리에 code, data, stack, heap 영역을 만들어줘야 함→ 프로세스가 많아지면, 프로세스 수만큼 PCB, code, data, stack, heap 영역도 만들어줘야 하기 때문에 너무 무거워짐 쓰레드가 생겨난 배경 예시웹 브라우저를 실행하면 프로세스 1개가 생성된다.탭을 하나 더 ..

CS 2025.04.28

프로세스 생성과 종료 & 프로세스 제어

프로세스 생성 과정0번 프로세스 생성 과정.exe 파일 실행 → 운영체제는 해당 프로그램의 코드 영역과 데이터 영역을 메모리에 로드함→ 빈 스택과 힙 공간을 확보함 → 이 프로세스를 관리하기 위한 PCB를 생성하고 값을 초기화함이 과정은 운영체제가 부팅되고 0번 프로세스가 생성될 때 딱 1번 실행됨→ 나머지 모든 프로세스는 0번 프로세스를 복사해서 사용함→ 복사는 fork() 함수를 이용함 (새로 만드는 것보다 복사가 더 빠름) 부모 / 자식 프로세스자식 프로세스 : 0번 프로세스를 복사해서 만든 프로세스자식 프로세스는 부모 프로세스의 code, data, stack 영역과 PCB 내용을 전부 복사함 부모 프로세스: 자식 프로세스 입장에서 0번 프로세스두 프로세스(부모, 자식)는 CPU 스케줄링에 따..

CS 2025.04.24

컨텍스트 스위칭 (Context Switching)

컨텍스트 스위칭 (Context Switching): 프로세스 실행 중에 다른 프로세스를 실행하기 위해 실행 중인 프로세스의 상태를 저장하고, 다른 프로세스의 상태값으로 교체하는 작업컨텍스트 스위칭이 일어날 때, PCB의 내용이 변경됨 (PCB에 상태 저장)→ 실행 중인 프로세스의 작업 내용을 PCB에 저장하고, 실행될 기존 프로세스의 PCB 내용대로 CPU가 다시 세팅됨PCB에 저장되는 값들프로세스 상태다음 실행할 명령어의 주소 (프로그램 카운터)레지스터 정보메모리 관련 정보 등컨텍스트 스위칭이 발생하는 상황CPU 점유 시간이 다 됐을 때입출력 요청이 있을 때다른 종류의 인터럽트가 발생했을 때 프로세스 2개가 컨텍스트 스위칭 하는 과정 프로세스 A가 실행 중인데 CPU 점유 시간을 초과함운영체제가..

CS 2025.04.24

PCB(Process Control Block) & 프로세스의 상태

PCB (Process Control Block): 운영체제가 각각의 프로세스를 관리하기 위해 사용하는 데이터 구조특징 운영체제는 PCB를 통해 모든 프로세스를 추적하고 관리함 프로세스가 생성될 때, 운영체제가 해당 프로세스의 정보를 갖고 있는 PCB를 만들고 저장함프로세스가 종료되면, 운영체제는 해당 프로세스의 PCB만 연결 리스트에서 제거함PCB들은 연결 리스트(Linked List) 구조로 저장됨 연결 리스트(Linked List): 각각의 데이터가 다음 데이터를 가리켜서 연결하는 구조인 자료구조 PCB 구조 1. 포인터: 부모와 자식 프로세스에 대한 포인터, 할당된 자원에 대한 포인터, 프로세스의 한 상태에서 다른 상태로 전환될 때 저장하는 포인터 등이 있음효율적인 접근을 위해 사용됨연결 리스..

CS 2025.04.24

프로그램과 프로세스 & 멀티 프로그래밍과 멀티 프로세싱

프로그램과 프로세스 1. 프로그램 (Program): 저장장치(하드 디스크 등)에 저장된 명령어들의 모음특징.exe 확장자 파일 (windows 운영체제에서) 단순히 저장된 상태 → 메모리에 올라가지 않음CPU, 메모리 자원을 아직 사용하지 않음 ⇒ 수동적 존재 2. 프로세스 (Process): 프로그램이 메모리에 올라가서 실행되고 있는 상태특징메모리, CPU 같은 자원 사용, 필요에 따라 입출력도 함 ⇒ 능동적 존재구조code 영역: 자신을 실행하는 코드 저장(실행할 명령어)data 영역: 전역 변수, static(정적) 변수 저장heap 영역: 프로그래머가 런타임 시 동적으로 메모리를 할당할 수 있는 메모리 공간 stack 영역: 지역 변수(int vat = 1;), 함수 호출 시 필요한 정보(매..

CS 2025.04.24

운영체제의 구조: 커널, 인터페이스, 시스템 콜, 하드웨어, 메모리, 폴링, 인터럽트

운영체제의 구조운영체제는 사용자와 하드웨어 사이에서 중간다리 역할을 한다.가장 핵심이 되는 건 커널이고, 사용자랑 커널 사이엔 인터페이스가 있다. 1. 커널 (Kernel) : 프로세스, 메모리, 저장장치 등을 직접 관리하는 운영체제의 핵심 부분특징사용자나 일반 프로그램이 직접 접근할 수 없다.시스템 전체 자원을 효율적으로 관리한다. 2. 인터페이스 (interface) : 사용자가 커널과 소통할 수 있게 도와주는 창구종류GUI (Graphic User Interface)→ 그래픽으로 커널과 상호작용 (ex. 마우스, 창, 버튼 등)CLI (Command-Line Interface)→ 명령어를 입력해서 커널과 소통 (ex. 리눅스 터미널) 3. 시스템 콜 (system call) : 일반 프로그램(..

CS 2025.04.23

[전문가를 위한 리액트] 도서 리뷰

"한빛미디어 서평단 활동을 위해서 책을 협찬 받아 작성된 서평입니다."    들어가며리액트를 어느정도 사용해보니까 단순히 기능을 사용하는 데에서 그치는게 아니라 리액트가 어떻게 작동하는 지 제대로 알아야겠다는 생각이 들었습니다. 특히 최적화가 필요할 때, 무작정 useMemo, useCallback을 사용하기보단 리액트의 렌더링 과정과 성능 개선 원리를 이해하는 것이 더 중요하다는 생각이 들었습니다. 이 책은 리액트의 기본적인 사용법을 넘어서, 리액트의 철학, 렌더링 메커니즘, 최적화 방법, 실전에서의 활용법까지 폭넓게 다룹니다. 단순한 튜토리얼이 아니라 "왜 이런 방식으로 동작하는가?" 에 대한 깊이 있는 설명이 많아 리액트를 제대로 이해하고 싶은 개발자들에게 유용한 책이었습니다.     목차 및 주..

카테고리 없음 2025.02.28