본문 바로가기

Computer Science/운영체제

(13)
반효경 운영체제 - 3. 프로세스 관리 프로세스 생성 부모 프로세스가 자식 프로세스 생성 복제 생성을 한다. 1대 n의 관계 구조가 트리형태로 구성된다. 프로세스는 자원을 필요로 한다. 운영체제로부터 받는다. 부모와 공유한다. 자원의 공유 부모와 자식이 모든 자원을 공유하는 모델 일부를 공유하는 모델 전혀 공유하지 않는 모델(원칙) 수행(Execution) 부모와 자식은 공존 자식이 종료될 때까지 부모가 기다리는(wait, blocked) 모델 주소 공간 자식은 부모의 공간을 복사함 (binary and OS data) 자식은 그 공간에 새로운 프로그램을 올림 유닉스의 예 fork() 시스템 콜이 새로운 프로세스를 생성 부모를 그대로 복사 (OS data except PID + binary) 주소 공간 할당 fork 다음에 이어지는 exec ..
반효경 운영체제 - 2.2 쓰레드 쓰레드의 정의 “A thread (opr lightweight process) is a baic unit of CPU utilization.” Thread의 구성 program counter - 작업 위치 register set - CPU의 작업 공간 stack space - 작업 위치에 따른 함수 호출 순서 Thread가 동료 thread와 공유하는 부분(task) code section data section OS resources 전통적인 개념의 heavyweight process는 하나의 thread를 가지고 있는 task로 볼 수 있다. 쓰레드는 하나의 프로세스에서 CPU가 실행하는 곳을 여러개, 프로그램 카운터를 여러개 두어 CPU 수행 단위를 여러 개로 두는 것을 멀티 쓰레드라고 함. 동일한..
반효경 운영체제 - 2.1 프로세스 프로세스의 개념 프로세스의 문맥 CPU 수행 상태를 나타내는 하드웨어 문맥 Program Counter - 어디까지 실행했는가? 각종 Register 프로세스의 주소 공간 stack, data, code 등 메모리에 담겨있는 내용 프로세스 관련 커널 자료 구조 PCB (Process Control Block) Kernel stack System call 발생 시 프로세스 별 별도의 스택프로세스 관련 커널 자료 구조 프로세스의 상태 프로세스는 상태가 변경되며 수행된다. Running CPU를 잡고 instruction을 수행 중인 상태 Ready CPU를 기다리는 상태(메모리 등 다른 조건을 모두 만족) Blocked (wait, sleep) CPU를 주어도 당장 instruction을 수행할 수 없는 상..
반효경 운영체제 - 1. 시스템 구조와 프로그램 실행 컴퓨터 시스템 구조 Computer CPU 매 클럭 마다 메모리에서 인스트럭션을 하나씩 읽어서 수행 registers : 메모리보다 빠른 정보를 저장할 수 있는 공간 mode bit interrupt line : CPU는 메모리와만 상호작용함. 인스트럭션 실행 완료 후 interrupt line을 확인한다. Memory I/O device와 상호작용이 필요할 때, 프로그램은 권한을 OS에게 반환한다. 사용자 프로그램은 I/O 장치에 직접 접근 불가하므로 운영체제를 통해서만 요청을 수행할 수 있다. I/O 컨트롤러가 요청이 완료되었음을 확인하고 CPU에게 인터럽트를 발생시킨다. 입력된 buffer 메모리를 프로그램 메모리 공간에 copy한다. Timer OS가 cpu를 점유하다가, 사용자 프로그램에 타이머..
반효경 운영체제 - 0. 운영체제란? 운영체제의 정의 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층 협의의 운영체제 (커널) : 운영체제의 핵심 부분으로 메모리에 상주하는 부분 광의의 운영체제 : 커널을 포함한 주변 시스템 유틸리티를 포함한 개념(ex, 파일 탐색기 등) 운영 체제의 목적 User 측면 : 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공. 운영체제는 동시 사용자/프로그램들이 각각 독자적 컴퓨터에서 수행되는 것 같은 환상을 제공함. 하드웨어를 직접 다루는 복잡한 부분을 운영체제가 대행. Hardware 측면 : 컴퓨터 시스템의 자원을 효율적으로 관리 프로세서, 기억장치, 입출력 장치 등을 효율적으로 관리 실행 중인 프로그램에게 짧은 시간 씩 CPU를 번갈아 할당 실행 중..