728x90
반응형

Embedded system/[KOCW] 운영체제

728x90
반응형
Embedded system/[KOCW] 운영체제

[운영체제] CPU 스케줄링 2 (FCFS, SJF, SRTF, Round Robin, Multilevel Queue, Multilevel Feedback )

● Scheduling Algorithms 종류 FCFS (First-Come First-Served) SJF (Shortest-Job-First), SRTF (Shortest-Remaining-Time-First) Priority Scheduling RR (Round Robin, 라운드 로빈) Multilevel Queue Multilevel Feedback Queue 스케줄링 알고리즘은 크게 두 가지로 나눌 수 있다. nonpreemptive(비선점형)한 스케줄링과 preemptive(선점형)한 스케줄링이다. 선점형은 CPU 제어권을 한 번 줬으면 그 프로그램이 다 쓰고 나갈 때까지 CPU 제어권을 강제로 다시 빼앗지 않는다. 비선점형 스케줄링은 Timer Interrupt와 같이 CPU 제어권을 강..

Embedded system/[KOCW] 운영체제

[운영체제] CPU 스케줄링 1 (CPU burst Time, Scheduler & Dispatcher)

● CPU and I/O burst in program Excution 프로그램 실행이 되면 프로그램은 아래와 같은 Path를 실행한다. 프로세스는 CPU에서 기계어가 실행되는 상태와 I/O 작업을 하는 상태의 반복이다. 프로그램마다 다르겠지만 CPU만 쭉 쓰는 프로그램도 있을 거고, 중간에 I/O가 많이 들어오는 프로그램도 있다. 어쨌든 프로그램의 path는 CPU를 쓰는 단계와 I/O를 쓰는 단계가 번갈아가면서 실행한다. CPU Burst : CPU만 연속적으로 쓰면스 Instruction을 실행하는 단계 I/O Burst : I/O를 실행하고 있는 단계​ ​ ● CPU burst Time 아래 그림은 컴퓨터 안에서 돌아가는 프로그램들의 CPU burst Time을 그래프로 찍어본 것이다. 주로 사람..

Embedded system/[KOCW] 운영체제

[운영체제] 프로세스 시스템 콜(fork, exec, wait, exit), IPC(Inter Process Commuication)

● 프로세스 생성, 실행, 종료 프로세스는 복제 생성을 하며, 부모 프로세스가 자식 프로세스를 생성해야 하는 구조로 프로세스의 계층은 트리 형태이다. 프로세스가 만들어지면 그 프로세스만의 독자적인 주소 공간(Code, Data, Stack)이 생긴다. fork() 함수를 통해 부모 프로세스를 복사하면 이 주소 공간을 Binary 통째로 복사한다. Program Counter까지 모두 복사되니까 당연히 자식 프로세스는 부모 프로세스가 실행한 부분 (fork() 함수의 다음 줄)부터 실행하게 된다. 이렇게 되면 시스템의 프로세스는 모두 똑같이 동작하게 된다. 그래서 exec()라는 System Call을 통해 프로그램을 덮어 씌워야 한다. 프로세스가 자발적으로 종료될 때에는 exit() System Call..

Embedded system/[KOCW] 운영체제

[운영체제] Thread (스레드)

● Thread (스레드) 프로세스 내부에 CPU 수행 단위가 여러 개 있는 경우에 Thread라고 말한다. 프로세스가 생기면 각각의 프로세스마다 메모리에 주소 공간(Code, Data, Stack)이 만들어지며, 프로세스 하나를 관리하기 위해서 Kernel data 영역에 PCB를 두고 있다. 위 그림과 같이 PCB에는 프로세스 상태, 프로세스 ID, 메모리의 어떤 부분을 실행하고 있는가를 가리키는 Program Counter... 등이 있다. 그렇다면 스레드(Thread)를 사용하는 이유는 뭘까? 프로세스를 만들 때마다 각 프로세스만의 주소 공간이 만들어진다고 했다. 만약 어떤 동일한 일을 하는 프로세스가 여러 개 있다고 가정하면, 각각의 프로세스마다 별도의 주소가 만들어져 메모리가 낭비된다. 같은 ..

Embedded system/[KOCW] 운영체제

[운영체제] PCB(Process Control Block), 문맥 교환(Context Switch), 프로세스 스케줄링 Queue, Scheduler

● Process Control Block (PCB) 운영체제가 각 프로세스를 관리하기 위해, 프로세스마다 해당 프로세스의 정보가 구조체로 구성되어 있는 정보이다. (프로세스 문맥) 1. 운영체제가 프로세스를 관리상 사용하는 정보 프로세스의 상태 (Ready, Running, Blocked), PID, 스케쥴링 정보, Priority 등을 담고 있다. · Priority는 Queue에 먼저 온 순서대로 처리하지는 않고 스케줄링 기법마다 우선순위가 있는데 해당 정보를 나타낸다. ​ 2. CPU 수행 관련 하드웨어 값 CPU에 어떤 레지스터 값을 넣어서 실행하고 있었지, 프로그램이 어디까지 실행이 되었는지 나타내는 Program Counter가 있다. ​ 3. 메모리 관련 Code, Data, Stack이 ..

Embedded system/[KOCW] 운영체제

[운영체제] 프로세스 문맥, 프로세스 상태, 프로세스 실행 과정

● 프로세스의 문맥 (context) 특정 시점을 놓고 봤을 때, 이 프로세스가 어디까지 실행을 했는지 저장하고, 새로운 프로세스를 실행시키기 위해 필요한 정보들이다. ​ 프로세스의 문맥(context)은 크게 세 가지로 구분된다. CPU 수행상태를 나타내는 하드웨어 문맥 : Program Counter, 각종 Register 프로세스의 주소 공간 : code, data, stack 프로세스 관련 커널 자료구조 : PCB, Kernel Statck 프로세스가 실행이 되면 그 프로세스만의 독자적인 주소공간(code, data, stack)을 형성하고, 특정 프로세스가 CPU를 잡게 되면 Program Counter Register가 이 프로세스의 코드 어느 부분을 가리키고 있으며, 매 순간 Instruct..

Embedded system/[KOCW] 운영체제

[운영체제] 프로그램 실행

● 프로그램의 실행 (메모리 Load) 실행 파일은 하드 디스크에 저장이 되고, 실행을 시키면 가상 메모리 단계를 거쳐 물리적 메모리에 올라가 프로세스가 된다. 프로그램을 실행시키면 자기 자신만의 독자적인 주소 공간이 만들어지며, 주소 공간은 Stack, Data, Code영역으로 구성되어 있다. ​ 코드 영역 메모리의 코드 영역은 실행할 프로그램의 코드가 저장되는 영역으로 텍스트 영역이라고도 부른다. CPU는 코드 영역에 저장된 명령어를 하나씩 가져가서 처리하게 된다. 데이터 영역 메모리의 데이터 영역은 프로그램의 전역 변수와 정적 변수가 저장되는 영역이다. 데이터 영역은 프로그램의 시작과 함께 할당되며, 프로그램이 종료되면 소멸한다. 스택 영역 메모리의 스택 영역은 함수의 호출과 관계되는 지역 변수와..

Embedded system/[KOCW] 운영체제

[운영체제] 동기/비동기식 입출력

입출력 입출력이란 컴퓨터 시스템이 컴퓨터 외부의 주변 장치들과 데이터를 주고받는 것을 말한다. 입출력에는 동기식 입출력과 비동기식 입출력이 있다. ● 동기식 입출력 I/O 요청 후 입출력 작업이 완료된 후에 CPU 제어권이 사용자 프로그램으로 넘어가는 방식이다. 사용자 프로그램에서 필요한 데이터를 읽어와서 처리해야 하는 경우에는 동기식 입출력을 사용한다. ​ 사용자 프로그램이 디스크에서 어떠한 정보를 읽어오라는 요청이 있을 때, 입출력이 완료될 때까지 시간이 걸린다. 이때, 동기식 입출력은 입출력이 진행되는 동안 프로그램의 다음 명령을 수행하지 않고 기다리게 된다. 그러다가 입출력이 완료되어 인터럽트를 통해 그 사실이 전달된 후에야 CPU 제어권이 사용자 프로그램에 넘어가서 다음 명령을 수행한다. → 동..

728x90
반응형
라닝
'Embedded system/[KOCW] 운영체제' 카테고리의 글 목록 (4 Page)