군대에서 한것/Operating System

프로세스와 컨텍스트 스위칭/다시 PC, SP에 주목하자- PC(Program Counter) + SP(Stack Pointer)/ Stack, Heap, Data(Bss,Data), Text(CODE) PCB=>PC,SP는 어디에 저장하나?PCB (Process Control Block)에 저장!*Process Context Block 이라고도함1. ProcessID2. Register 값 (PC, SP등)3. SCheduling Info (Process State)4. Memory Info (메모리 사이즈 limit)PCB : 프로세스가 실행중인 상태를 캡텨/구조화 해서 저장
2019년 01월 17일 Heap 이란?123456789101112#include #include int main(){ int *data; data = (int *)malloc(sizeof(int)); *data = 1; printf("%d\n", *data); return 0;}Colored by Color Scriptercs Heap라는 공간은 동적 데이터를 저장하는 공간이다. c언어에서는 malloc()을 통해서 heap에 저장한다. stack heapdata ->BSS : 초기화 되지 않은 전역 변수를 저장->DATA : 초기값이 있는 전역 변수를 저장code123456789101112131415#include #include int global_data1; //BSS에 들어감int global_..
2019년 01월 02일 인터럽트 처리 예 - CPU가 프로그램을 실행하고 있을때.- 입출력 하드웨어 등의 장치 이슈 발생->파일 처리가 끝났다는 것을 운영체제에 알려주기->운영체제는 해당 프로세스를 block state에서 실행대기 상태로 프로세스 상태 변경하기- 또는 예외 상황이 발생-> 0으로 나누는 계산이 발생해서, 예외 발생을 운영체제에 알려주기-> 운영체제가 해당 프로세스 실행중 중지/에러 표시 이벤트와 인터럽트>인터럽트는 일종의 이벤트라고 불림>이벤트에 맞게 운영체제가 처리 주요 인터럽트 (Interrupt)1. 계산하는 코드에서 0으로 나누는 코드 실행시 (Didvide-by-Zero Interrupt)123456789101112131415#include int main(){ printf(..
2019년 01월 01일 스케줄러 구분 ( 정책, policy 라고도 함 ) - FIFO(FCFS), SJF, Priority-based 는 어떤 프로세스를 먼저 실행 시킬지에 대한 알고리즘 + (비선점형 스케줄링에 가까움)- RoundRobin 은 시분할 시스템을 위한 기본 알고리즘 + (선점형 스케줄러) 여러 알고리즘을 조합하여 스케줄러를 만든다ex) 1. 시분활 시스템 2. 프로세스 상태 고려 3. 정적 우선 순위 기반 4. 선점형 * 가볍게 듣기렉?: 마우스/ 키보드 반응이 느린 경우?>스케줄러가 해결해야하는 이슈!>다양하고 복잡한 스케쥴링 알고리즘 필요- 리눅스 스케쥴러: O(1), CFS (스케줄링 알고리즘 이름)와 같이 다양한 방식으로 변경 시도 중-인터렉티브,IO,CPU 중심 프로세스로 미..
2018년 12월 25일 선점형과 비선점형 스케줄러 > 선점형 스케줄러 (Preemptive Scheduling) : 하나의 프로세스가 다른 프로세스 대신에 프로세서(CPU)를 차지할 수 있음> 비선점형 스케줄러 (Non-preemptive Scheduling) : 하나의 프로세스가 끝나지 않으면 다른 프로세스는 CPU를 사용할 수 없음+ 시분할 시스템이 안됨+ 프로세스가 상태를 자체적으로 wait 또는 end 로 들어가지 않으면 다른 프로세스를 실행 시킬 수 없음+ 과거에 기본이였지만 후에 선점형 스케줄러를 주로 씀, 프로세스를 중단할 때 여러가지 고려해야할게 많아서 힘들었음 선점형과 비선점형 스케줄러 차이> 비선점형 : 프로세스가 자발적으로 blocking 상태로 들어가거나, 실행이 끝났을때 (end..
2018년 12월 21일 * Cpu IDLE 상태 - idle : 게으른 - Cpu가 스케줄링 중간에 아무 프로세스도 처리 하지 않고 쉬는 상태 저번 시간에 애기했던 상태만으로 어떤 프로세스를 선택해서 상태를 바꿔줘야되는 모르기 때문에 다른 무언가 필요하다고 했었다.각 상태 별로 큐를 만들어 준다Ready State Queue, Running State Queue, Block State Queue를 만들어서 FIFO (선입선출)을 이용하여 프로세들은 나름 균등하게 실행시킨다.이것이 프로세스 상태기반 스케줄링 알고리즘의 가장 기본적인 내용이다.
2018년 12월 21일 멀티 프로그래밍과 Wait > 멀티 프로그래밍 : CPU 활용도를 극대화 하는 스케줄링 알고리즘> Wait : 간단히 저장매체로부터 파일 읽기를 기다리는 시간으로 가정+ 일정 프로세스가 CPU에 넣어지고나서 기다리는 시간Program A |Run| | | |Run| | | |Program B | |Run| | | |Run| | |Program C | | |Run| | | |Run| |Combined |Run|Run|Run| |Run|Run|Run| |*빈칸은 wait--> 이렇게 하기 위해서는 어떤 특정 시점에 어떤 프로세스를 실행시킬지 판단해야함 그 요소 중 하나가 프로세스 상태(Process Status)이다. 프로세스 상태 (Process Status)출처:https://z..
2018년 12월 20일 SJF (Shortest Job First) 스케줄러 - 가장 프로세스 실행시간이 짧은 프로세스부터 먼저 실행 시키는 알고리즘 * Real Time OS (RTOS) : 응용 프로그램 실시간 성능 보장을 목표로 하는 OS- 정확하게 프로그램 시작, 완료 시간을 보장 +시간에 민감한 프로세스들이 동작해야되는 시스템에서, 스케줄러도 다양함, 복잡하지 않고 단순함,공장같은데에서도 쓰임- Hardware RTOS, Software RTOS* General Purpose OS (GPOS) : 프로세스 실행시간에 민감하지 않고, 일반적인 목적으로 사용되는 OS (ex. Windows, Linux etc) 우선순위 기반 스케쥴러 (Priority-Based 스케줄러)- 정적 우선순위->프로세..
_으량_
'군대에서 한것/Operating System' 카테고리의 글 목록