운영체제 18

[OS] CPU Scheduling(Sort-term Scheduling) Basic

* CPU의 사용을 최대화 하는 것이 목표 * CPU의 상태는 2단계에서 머문다.(CPU 계산 or I/O대기) - 두 단계의 CPU Burst가 순환하면서 발생 * 전체적인 performance를 높이기 위해서 CPU scheduler는 ready queue에 있는 process중 하나를 선택할 수 있다. * CPU Scheduler가 발생하는 시기 ⓐ running > waiting ⓑ running > ready ⓒ waiting > ready ⓓ running > terminated - ⓐ, ⓓ번은 process가 자발적으로 이동을 실시한다. - ⓑ, ⓒ번은 process가 외부에 의해 타의적으로 발생한다. ⓑ, ⓒ과 같은 사건이 발생하기 위해서는 다음과 같은 조건이 필요하다. (Preemptiv..

[OS] Threads

* Threads - process를 만드는 것과 같이 여러개의 실행을 동시실행 하기 위한 방법 (근본적으로 process를 만드는 것과는 다르다.) - 즉, 어떤 에플리케이션에서 여러개의 나눠진 Thread를 이용해 Multiple task를 구현하고 있다. - 프로세스를 생성하는 것과 다르게 가볍다.(코드가 단순해지고 효율이 증가한다) > 메모리 사용이 적고, Thread간 데이터를 주고 받는 것도 쉽다. - 일반적으로 kernel은 multi-threaded방식을 사용한다. ※ 그림 중요!! * Thread 사용으로 얻는 이득 - 반응성이 빨라진다. (데이터에 access하거나 정보 교환이 편하다) - 쉽게 자원을 공유 할 수 있다. (같은 주소 공간을 사용한다) - 경제적이다.(빠르다. 손쉽게 할..

[OS] Process Creation and process communication

* Process Creation - 일반적으로 프로젝트를 분류하고, 관리하기 위해서는 process identifier(PID)가 사용된다. - Resource sharing에 대한 선택지 > 부모와 자식은 resource를 모두 공유한다. > 자식은 부모의 resource를 일부 공유한다. > 부모와 자식은 resource공유를 하지 않는다. - Execution > 부모와 자식은 동시에 실행한다. > 부모는 자식이 죽을 때까지 wait상태로 대기한다. - process creation은 자신을 복제한 후 기능을 추가하는 것이다. * Process Creation in UNIX - fork : 새로운 프로세스를 만드는 system call - exec : 복제가 완료된 후에 메모리 내용을 변경하여 다..

[OS] Schedulers & Context switch

* Schedulers - Scheduler : 프로세스 상태의 변화를 결정하는 것 * Long-term scheduler and Short-term scheduler - Disk와 메모리사이에 존재하는 long-term scheduler와 메모리와 CPU사이에 존재하는 short-term scheduler가 존재한다. ⓐ Long-term scheduler - Disk에 있는 Job을 언제 메모리 큐로 보낼 것인가를 결정하는 스케쥴러 - Job scheduler라고도 부른다. - Process가 종료되면(Memory 여유가 생길 때) Job을 불러들인다. - 몇초 또는 몇분에 한번씩 발생한다. - 느린 편이다. ⓑ Short-term scheduler - Memory에 있는 것을 언제 CPU로 보낼 것..

[OS] Process part 1

* Conception - program : 하드디스크에 저장된 응용 프로그램 - process : 실행되는 프로그램. 메모리에 올라가 있는 프로그램 (OS에 따라서 Job 또는 task라고 부른다) - process는 다음을 포함하고 있다. > program counter : 현재 프로그램 실행 단계, 위치 // in PCB > contents of registers : register의 내용 // in PCB > Text section : program source cord > Data section : Global variable > Heap : Dynamic memory > Stack : 함수 파라미터, 지역변수, 반환주소등을 기억하는 공간 ※ Stack과 Heap이 만나면 memory overf..

[OS] OS service / structure / Debugging

* Operating System Service ※ GUI(in user interface)는 OS의 자체 시스템이 될 수도 있다.(OS마다 지원 방식이 다르다.) ⓐ User Service - Program execution(프로그램 실행) > 프로그램을 메모리에 적재하여 실행하고, 프로그램을 정상 또는 비장상 적으로 끝내는 역할을 담당한다. - I/O Operation(입출력 동작) - File System(파일 시스템 조작) > 파일을 정확히 읽고, 쓰며 파일 이름으로 파일을 생성 및 삭제가 가능해야한다. - Communication(통신) > 프로세스간 통신을 원활하게 해줘야 한다. - Error Detection(오류 검사) > 운영체제는 가능한 모든 오류를 검사하여 알려줘야 한다. ⓑ Syst..

[OS] Basic

* Processor System ⓐ Single-Processor System - 프로세스 타입은 하는 일에 따라서 나눠진다. > General-purpose processor : 일반적인 프로세서로 CPU를 말한다. > Special-purpose processor : 특수 목적의 프로세서로 키보드, 디스크등을 컨트롤해주는 프로세스 > 대부븐의 컴퓨터는 하나의 General-purpose processor와 다수의 special-purpose processor를 가지며 이를 통틀허 Single-Processor System이라고 한다. ⓑ Multiprocessor System - General-purpose processor가 여러개 있는 것을 의미한다. - 단위 시간당 할 수 있는 일이 증가하는 ..

[OS] 기초

* 프로세스 - 중앙처리장치로 전원이 켜지면 메모리의 첫부분을 읽어서 실행시킨다. - 프로세스의 구조 > Control Unit : 명령어를 해석하는 명령어 해석기, 제어 로직으로 구성됨 > ALU(Arithmetic and Logic Unit) : 산술연산 및 논리 연산을 수행하며 레지스터라는 메모리를 가짐 > Registers : ALU의 산술, 논리 연산을 위한 저장장소. ⓐ General register : 프로그램, 데이터 처리를 위한 레지스터 ⓑ Stack register, Program Counter register : 프로그렘 제어 및 프로세서 제어 레지스터 ⓒ status register : error를 체크하는 레지스터 ⓓ Instruction register : 데이터 어드레싱, 데이..