프로세스 vs 스레드 프로세스: 프로그램을 메모리 상에서 실행 중인 작업 스레드: 프로세스 내에서 실행되는 여러 흐름 단위 1. 기본적으로 프로세스마다 최소 1개의 스레드를 소유한다. 2. 프로세스는 각각의 별도의 주소공간의 할당(독립적)되는 반면, 스레드는 Stack만 따로 할당을 받고, 나머지 영역들을 서로 공유한다. 가. 프로세스가 할당받는 주소공간 내 1) Code: 코드 자체를 구성하는 메모리 영역 2) Data: 전역변수, 정적변수, 배열 등 (초기화된 데이터) 3) Heap: 동적 할당시 사용 (new()) 4) Stack: 지역변수, 매개변수, 리턴 값 (임시메모리 영역) 멀티 프로세스 하나의 컴퓨터에 여러 CPU를 장착하여 하나 이상의 프로세스들을 동시에 처리하는 방식, 프로세스는 독립된..
CS(Computer science)/컴퓨터 구조&운영체제
프로세스 스케줄링 - CPU를 사용하려고 하는 프로세스들 사이의 우선순위를 관리하는 일이다. - CPU가 쉬지 않고, 계속 열심히 일할 수 있도로고 효율적인 계획을 잡아주는 것이다. 스케줄링의 목적 1. 시스템의 성능 향상 가. CPU 처리율과 이용률 증가 나. 오버헤드 최소화 다. 응답시간, 대기시간, 반환시간 최소화 2. 목적에 맞는 지표를 고려하여 스케줄링 기법을 선택하는 것이 필요 스케줄링 기준 1. 우선순위 ex) CPU Burst vs IO Burst(I/O 사용시간) 2. 긴급성 3. 특성 스케줄링 단계 1. Long-term 스케줄링 어떤 프로세스를 커널에 등록할 것인가를 결정하는 스케줄링 2. Mid-term 스케줄링 어떤 프로세스에게 메모리를 할당할 것인가를 결정하는 스케줄링 3. Sh..
작업(Job) / 프로그램 실행할 프로그램과 데이터를 합친 것으로써 컴퓨터 시스템에 실행 요청 전의 상태를 말한다. 프로세스(Process) 프로그램 실행을 위해 시스템(커널)에 등록되고 시스템 성능 향상을 위해 커널에 의해 관리되는 상태를 말한다. 각종 자원들을 요청하고 할당을 받을 수 있으며, 실행 중인 프로그램이라고도 불리운다. 자원 커널의 관리하에 프로세스에게 할당되거나 반납되는 수동적인 개체를 말한다. PCB(Process Control Block) OS가 프로세스 관리에 필요한 정보들을 저장하는 공간으로써 프로세스가 생성시 동시에 만들어진다. PCB안에는 하나의 프로세스의 정보가 담긴다. 1. PCB에 저장되는 정보(Process Metadata) 가. PID(Process Identifica..
운영체제 운영체제는 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고, 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램들의 모임이다. 운영체제의 구조 1. 단일 구조 - 장점: 커널 내 모듈간 직접 통신 - 단점: 커널의 거대화 -> 오류 및 버그, 추가기능 구현 등 유지보수가 어려움 2. 계층 구조 - 장점: 모듈화, 설계 및 구현의 단순화 - 단점: 단일 구조 대비 성능이 저하 운영체제의 구분 1. 단일 사용자 시스템 가. Windows 나. Android 2. 다중 사용자 시스템 가. Unix 나. Linux 운영체제의 종류 1. 단일 작업 시스템(Single-Tasking System) 하나의 프로그램 실행을 마친 뒤에 다른 프로그램 생성 가. DOS 나. CMD..