프로세스: 실행중인 프로그램 프로세스의 맥락(context) CPU 수행 상태를 나타내는 하드웨어: Program counter, 각종 레지스터 PC가 어떤 코드를 가리키는가, 레지스터에 어떤 정보를 담고 있는가 프로세스의 주소 공간: code, data, stack 프로세스 관련 커널 자료 구조: PCB(Process Control Block), kernel stack 프로세스가 실행 될 때마다 각각 별도로 PCB를 data에 두고 관리 A의 코드 실행 중에 함수 호출이 일어나면 본인의 스택에 그 함수를 호출하고 리턴 후 관련 정보 쌓음 A 본인이 스스로 할 수 없는 것을 OS에 요청하면(시스템콜) 그와 관련되어 실행되는 커널에서의 코드가 함수를 호출하면 A의 커널 스택에 개별적으로 쌓고 관리 프로세스..
동기식 입출력: I/O 요청 후 입출력 작업이 완료된 후에야 제어가 사용자 프로그램에 넘어감 구현 방법 1 입출력이 끝날 때까지 CPU 낭비 -> 매 시점 하나의 입출력만 일어날 수 있음 구현 방법 2 입출력 완료까지 해당 프로그램에게서 CPU 빼앗음 입출력 처리를 기다리는 줄에 그 프로그램을 줄 세움 다른 프로그램에게 CPU를 줌 비동기식 입출력: I/O 시작 후 입출력 작업이 끝나기 기다리지 않고 제어가 사용자 프로그램에 즉시 넘어감 두 경우 모두 I/O의 완료는 인터럽트로 알려줌 서로 다른 입출력 명령어 메모리에 접근하는 인스트럭션, I/O 수행 인스트럭션 따로 Memory Mapped I/O: 메모리에 접근하듯이 I/O 수행 저장장치 계층 구조 윗 계층일수록 빠르며, 가격이 높아 용량이 적다 pr..
CPU: 매 클럭마다 메모리에서 인스트럭션(기계어)을 차례로 읽어 실행하는 작업 반복 레지스터: 메모리보다 빠른 작은 정보 저장 공간 다음 인스트럭션의 주소를 담고 있음 mode bit: 실행중인 프로세스가 OS인지 사용자 프로그램인지 구분해준다 1 (사용자 모드): 사용자 프로그램 수행 -> 제한된 인스트럭션만 수행 가능 (보안) 0 (모니터 모드): OS 코드 수행 (=커널모드) -> I/O 관련된 인스트럭션까지 모두 수행 가능 interrupt line: CPU는 매 인스트럭션을 읽기 전에 interrupt line이 세팅되어 interrupt될 사항이 있는지 체크한다 CPU에 인터럽트가 걸리면 실행중인 프로그램에서 OS로 CPU 제어권이 넘어간다 프로그램 실행 중에 I/O 장치의 관여가 필요하다면..
운영체제: 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층 좁은 의미(커널): 운영체제의 핵심 부분으로 메모리에 상주하는 부분 넓은 의미: 커널 뿐 아니라 각종 주변 시스템 유틸리티(ex. 파일 복사 프로그램)를 포함한 개념 운영체제의 목적 컴퓨터 시스템의 자원(하드웨어 + 소프트웨어)을 효율적으로 관리 (효율성 + 형평성) & 사용자/운영체제 보호 컴퓨터 시스템을 편리하게 사용할 수 있는 환경 제공 동시 사용자/프로그램들이 각각 독자적인 컴퓨터에서 수행되는 것 같은 경험 제공 하드웨어를 직접 다루는 복잡한 부분 대행 운영체제의 분류 동시 작업 가능 여부 단일 작업(single tasking) 예)MS-DOS 다중 작업(multi tasking) ..
운영체제의 기능 CPU 스케쥴링 대부분의 프로그램은 CPU(기계어 실행) ↔ 입출력 디바이스(디스크, 키보드, 프린터, 모니터 등) 과정 반복 실행 FCFS(First Come First Served): 어떤 프로세스가 먼저 왔냐에 따라 평균 대기 시간이 비효율적 SJF(Shortest Job First): CPU 사용시간이 가장 짧은 프로세스 순으로 스케쥴 -> 최소 평균 대기 시간 보장 Starvation(기아 현상) 발생 가능: 이론적으로 영원히 CPU를 사용하지 못하는 프로세스가 생길 수도 있다 RR(Round Robin): 각 프로세스에 동일한 CPU 사용시간 할당 할당 시간 종료 후 인터럽트(하드웨어 관여) 발생 -> CPU를 빼앗기고 CPU 큐의 맨 뒤에 줄을 섬 대기 시간이 프로세스의 CP..
운영체제(OS): 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층 목표: 컴퓨터 시스템의 자원(CPU, 메모리, 입출력 장치 등)을 효율적으로 관리 (+형평성) 실행중인 프로그램들에게 짧은 시간씩 CPU를 번갈아가며 할당, 메모리 공간을 적절히 분배 동시 사용자/프로그램들이 각각 독자적인 컴퓨터에서 수행되는 듯한 경험 제공 하드웨어를 직접 다루는 복잡한 부분을 대행 출처: http://www.kocw.net/home/cview.do?lid=5a0205590631eece