1. 스케줄링의 목적 프로세스 스케줄링이란 여러 개의 프로세스가 시스템 내 존재 자원을 할당할 프로세스를 선택 해야 함 ⇒ 스케줄링 자원 관리 시간 분할 관리 하나의 자원을 여러 스레드들이 번갈아 가며 사용 예) 프로세서 프로세스 스케줄링: 프로세서 사용 시간을 프로세스들에게 분배 공간 분할 관리 하나의 자원을 분할하여 동시에 사용 예) 메모리 스케줄링의 목적 시스템의 성능 향상! 대표적인 시스템 성능의 지표 응답시간: 작업 요청으로부터 응답을 받을 때까지의 시간 → 사용자 대화형 시스템, real-time 시스템에 적합 작업 처리량: 단위 시간 동안 완료된 작업의 수 → 일괄 처리 시스템 자원 활용도: 주어진 시간 동안 자원이 활용된 시간 목적에 맞는 지표를 고려하여 스케줄링 기법을 선택한다. 대기시간..
1. Thread의 정의 프로세스와 스레드 프로세스: 자원을 할당받고 제어하여 원하는 작업을 수행하는 것 스레드란? : 코드, 전역 데이터, 힙으로 구성 : 제어 정보/스택 포인터/지역 데이터/스택을 가지고 있음 하나의 프로세스 내에 여러 개 존재한다. Light Weight Process (LWP: 가벼운 프로세스 / 프로세스의 제어 부분만 가지고 있음) 프로세서 (e.g CPU) 활용의 기본 단위 구성 요소 Thread ID Register set(PC, SP 등) Stack (i.e. local data) 제어 요소 외 코드, 데이터 및 자원들은 프로세스 내 다른 스레드들과 공유 전통적 프로세스 = 단일 스레드 프로세스 스레드의 메모리 공간 스레드의 장점 사용자 응답성(Responsiveness) ..
1. 프로세스의 개념 작업(job) / 프로그램(Program) vs 프로세스 [작업(job) / 프로그램(Program)] 실행 할 프로그램 + 데이터 (우리가 짠 프로그램) 컴퓨터 시스템에 실행 요청 전의 상태 Disk에 보관되어 있음 [프로세스] job이 시스템에 등록된 상태 (메모리를 할당받음) 실행을 위해 시스템(커널)에 등록된 작업 시스템 성능 향상을 위해 커널에 의해 관리 됨 프로세스의 정의 실행중인 프로그램 커널에 등록되고 커널의 관리하에 있는 작업 각종 자원들을 요청하고 할당 받을 수 있는 개체 프로세스 관리 블록 (PCB)을 할당 받은 개체 능동적인 개체(active entity) : 실행 중에 각종 자원을 요구, 할당, 반납하며 진행 PCB(Process Control Block) 커..
컴퓨터 시스템과 구조 1. 전체적인 스토리 I/O Device는 host 컴퓨터에 붙어서 host에 입출력하는 역할을 수행한다 Device Controller는 I/O Device를 통해 데이터를 읽거나 쓰면 local buffer에 저장한다 Device Controller가 CPU에 어떠한 정보를 제공할 때에는 Interrupt를 건다 CPU는 매순간 메모리 레지스터에 있는 PC가 가리키고 있는 메모리에 올라와있는 기계어(Instruction) (보통 4Byte)를 하나씩 읽어와서 실행한다 PC는 다음 Instruction 실행할 위치를 가리킨다. 실행 후 += 4Byte 하지만 항상 순차적인 처리는 아님! If문 해당안하거나 Interrupt 발생 시 메모리 주소를 점프하여 Instruction 수행..
컴퓨터 시스템과 구조 컴퓨터 시스템에서 어떻게 하드웨어가 작동하는가? 프로그램들이 이러한 하드웨어 위에서 어떻게 돌아가는가? 1. CPU CPU는 매 clock cycle마다 instruction (기계어)를 하나씩 읽어서 실행하고 하나의 Instruction을 마치면 Interrupt line을 확인하여 다음 Instruction 수행 여부를 결정한다 메모리 : CPU의 작업 공간 레지스터 : CPU내에 메모리보다 더 빠르고 정보를 저장할 수 있는 작은 공간들이 있다. mode bit: CPU내에서 실행되는 것이 운영체제인지 사용자 프로그램인지 구분해준다. 사용자 프로그램의 잘못된 수행으로 다른 프로그램 및 운영체제에 피해가 가지 않도록 하기 위한 보호 장치 필요 Mode bit을 통해 하드웨어적으로 ..
1. Introduction to Operation Systems 운영체제란? 좁은 의미의 정의 : 커널 (운영체제의 핵심) 운영체제 커널: 컴퓨터 부팅 이후로 항상 메모리에 상주하는 부분 넓은 의미의 정의 : 커널을 포함한 각종 주변 시스템 유틸리티 (window 설치하면 부가 프로그램 같이 설치 - 파일 복사 기능과 같이 커널에 포함되지 않는 것들 포함) 메모리에 상주하지 않는 별도의 프로그램 포함 운영체제의 목적? 컴퓨터 시스템의 자원을 효율적으로 관리하기 위해 프로세서, 기억장치, 입출력 장치 등의 효율적 관리 (CPU, 메모리, I/O Device) 사용자간의 형평성 있는 자원 분배 주어진 자원으로 최대한의 성능을 내도록 사용자 및 운영체제 자신의 보호 프로세스, 파일, 메시지등을 관리 (소프트..