process와 thread 구성
·
OS
process 프로세서에 의해 실행되고 있는 프로그램 process의 구조 - code: 프로그램 명령이 위치한 곳 - data: 전역 변수나 static 변수의 할당을 위해 존재하는 공간 - stack: 지연 변수 할당, 함수 호출 시 전달되는 인자 값들을 저장하기 위한 공간(). 제어를 위해 필요한 데이터 - heap: Java의 new를 통한 동적 할당을 위해 존재하는 공간 thread - 프로그램의 실행 단위 - 역할: 프로세스가 할당 받은 자원을 통해 제어 첨언 - CPU 스케줄러는 프로세스가 해야할 일을 CPU에게 전달하고 실제 작업은 CPU가 수행 - 스케줄러가 CPU에 전달하는 일 하나가 스레드! - OS 입장에서 작업 단위는 프로세스이고, CPU 입장에서의 작업 단위는 스레드이다. the..
Concurrency vs Parallelism
·
OS
동시성(Concurrency) - 적어도 2개의 스레드 - time slicing - 코어 내에서 스레드가넹 빠르게 교차 실행 - 동시에 실행하는 것 처럼 보임. 실제로 동시에 수행하는 것은 아님. 병렬성(Parallelism) - 적어도 2개의 코어 - 각 코어 내에 스레드가 실제로 동시에 명령 실행
[OS] Lecture 6. Process Synchronization and Mutual Exclusion (1/7) - Introduction
·
OS
다중 프로그래밍 시스템 - 여러 개의 프로세스 존재 - 프로세스 서로 독립적 동작 - 프로세스 끼리 자원을 공유-> 문제 발생 가능성 Synchronization(동기화) - 프로세스간 통신 - 프로세스간 서로 정보를 공유하는 것 - 프로세스간 서로 동작을 맞추는 것. Asynchronization(비동기화) - 프로세스간 서로 어떻게 동작하는지 모름 Concurrent(병행적) - 프로세스 동시에 동작 - 병행 수행 중인 비동기적 프로세스들이 자원을 공유-> 문제 발생 가능성 용어정리 1. Shared data(공유 데이터) or Critical data 여러 프로세스들이 공유하는 데이터 2. Critical section(임계 영역) 공유 데이터(자원)를 접근하는 코드 영역(code segment) ..
[OS] Lecture 5. Process Scheduling (4/4) - MLQ, MFQ
·
OS
MLQ와 MFQ 이전 SPN, SRTN, HRRN의 단점인 BT예측 overhead를 해결 MLQ(Multi Level Queue) - ready queue가 여러 개 가짐 - 각각의 큐마다 작업 또는 우선순위 배정 - 최초 배정 된 큐는 고정. 큐 이동 못함. - 각각의 큐 자신만의 스케줄링 기법 사용 - 큐 사이에는 우선순위 기반의 스케줄링 사용(각각 큐가 우선순위가 다르다) MLQ의 단점 - 우선순위 낮은 큐는 여전히 starvation 현상 발생 가능 - 여러 개 큐 관리 등 스케줄링 overhead 발생 - 큐 고정. 시스템 변화 적응 어려움 MFQ(Multi Level Feedback Queue) -MLQ와의 차이: 프로세스의 큐간 이동이 허용 - Feedback을 통해 우선순위 조정 - 프로..
[OS] Lecture 5. Process Scheduling (3/4) - SPN, SRTN, HRRN
·
OS
SPN(Shorest Process Next)= burst time이 가장 작은 프로세스 먼저 처리하자! - Non-preemptive scheduling. 자원 뺏길 수 X - 스케줄링 기준: burst time - burst time이 가장 작은 프로세스 먼저 처리 - SJF(Shortest Job First) scheduling - ex) 소량 상품 전용 계산대 장점: - 평균 대기시간(WT) 최소 - 시스템 내 프로세스 수 최소화 - 스케줄링 부하 감소. 메모리 감소-> 효율 향상 - 많은 프로세스 빠른 응답 시간 제공 단점: - starvation(기아) 현상 발생= 무한대기 - BT가 긴 프로세스는 자원을 할당 받지 못 할 수 있음(Aging으로 해결. HRRN) - 정확한 실행시간 알 수 없..
[OS] Lecture 5. Process Scheduling (2/4) - FCFS, RR
·
OS
Basic Scheduling algorithms 1. FCFS(First Come First Service) 2. RR(Round Robin) 3. SPN(Shortest Process Next) 4. SRTN(Shortest Remaining Process Next) 5. HRRN(High Response Ratio Next) 6. MLQ(Multi Level Queue) 7. MFQ(Multi Level Feedback Queue) 1. FCFS(First Come First Service)= 선착순 알고리즘 - Non-preemptive scheduling - 스케줄링 기준: 도착시간(ready queue 기준). 먼저 도착 프로세스 먼저 처리 - scheduling overhead가 낮다. CP..
[OS] Lecture 5. Process Scheduling (1/4)
·
OS
다중 프로그래밍(multi-prgramming) - 여러 프로세스가 시스템에 존재 - 자원을 할당 할 프로세스 선택= 스케줄링 - 자원 관리 자원 관리 1. 시간 분할(time sharing) 관리 - 하나의 자원을 여러 스레드들이 번갈아 가며 사용. 예) 프로세서(CPU). CPU에는 한번에 하나의 프로세스 - ex) process scheduling 2. 공간 분할(space sharing) 관리 - 하나의 자원을 분할하여 동시 사용 - ex) memory 스케줄링의 목적 - 성능 향상 - 목적에 맞는 지표를 고려하여 스케줄링 기법 선택 성능의 지표 - reponse time: 작업 요청으로부터 응답을 받을 때까지의 시간 - throughput(작업 처리량): 단위 시간 동안 완료된 작업의 수 - r..
[OS] Lecture 4. Thread management
·
OS
프로세스 자원 1. 할당 2. 제어 스레드== 제어 하나의 프로세스, 할당 받은 자원들을 제어= 스레드 제어의 요소(스레드의 요소) - 제어 정보(SP, PC, 상태 등) - 지역 데이터(스택에 보관) - 스택 자원의 요소 - 코드 - 전역 데이터 - 힙 같은 프로세스의 스레드들은 자원을 공유한다. Thread - 프로그램(프로세스) 실행의 단위 - LWP(Light Weight Process): 자원과 제어 중 제어 부분만 해당하기 때문에 Lgiht 라고 한다. - 프로세서(CPU) 활용의 기본 단위 - 제어 요소 외 코드, 데이터 및 자원들은 프로세스 내 다른 스레들과 공유 스레드의 장점 - 자원 공유(Resource sharing) context switching X-> 커널의 개입 X-> over..
CPU, Main Memory(Primary Memory), Disk(Secondary Memory)
·
OS
CPU(= Central Processing Unit) - 중앙처리장치 - 컴퓨터의 모든 연산과 작업을 처리하는 장치 CPU 동작과정 1. Main Memory(MM)는, I/O 디바이스에서 입력 받은 데이터 또는 Disk에 저장된 프로그램을 읽는다. 2. CPU는 프로그램을 실행하기 위해, MM에 저장된 프로그램 명령어와 데이터를 읽어서 처리하고, 결과를 MM에 저장 3. MM는 처리 결과를 DIsk에 저장하거나 출력장치로 보낸다. 4. CPU의 제어장치는 1~3 과정에서 명령어가 순서대로 실행되도록 제어한다. 기억장치(Memory) 프로그램, 데이터, CPU 연산 결과를 저장하는 장치 1. 주기억장치. RAM. Primary Memory= Main Memory CPU 의 연산 결과를 임시로 저장해주며..
[OS] Lecture 3. OS Process Management (2/2)
·
OS
인터럽트(Interrupt) 예상치 못한, 외부에서 발생한 이벤트 인터럽트 처리과정 1. 인터럽트 발생 2. (커널 개입) 프로세스 중단 3. 인터럽트 처리(핸들링) 3.1. 인터럽트 발생 장소, 원인 파악 3.2 인터럽트 서비스 할 것인지 결정 4. 인터럽트 서비스 루틴 호출 인터럽트 서비스 호출 - context saving 발생 - context saving= 책갈피. 흐름을 저장. PCB에 저장 커널의 개입 -프로세스 중단. 인터럽트 발생 장소, 원인 파악 - 파악 완료 후? 인터럽트 서비스 호출 - 서비스 호출의 의미는? 일종의 프로그램. 인터럽트를 처리하는 프로세스 CPU 할당 - 인터럽트 프로세스 종료 후? 중간에 중단됐던 프로세스가 CPU 할당? No! - queue에서 ready 상태로 ..