CS

CPU Scheduling(CPU 스케줄링)? CPU 사용률을 극대화하기 위해선 멀티프로그래밍(MultiProgramming)이 필요하다. 만약 CPU 코어가 1개인 경우 한번에 하나의 프로세스만 실행 가능하다. 이때 필요한 것이 CPU 스케줄링 CPU 스케줄링은 언제 어떤 프로세스에 CPU를 할당할 것인지 결정하는 작업 CPU 스케줄링의 목표 Batch System 가능하면 많은 일을 수행 시간(time)보다 처리량(throughout)이 중요함 Interactive System 빠른 응답 시간 적은 대기 시간 Real-time System 기간(Deadline) 맞추기 오버헤드를 낮추고, CPU 사용률을 높이고, 기아 현상을 낮춰야함 선점과 비선점 선점(Preemptive)형 스케줄링 프로세스가 CP..
Process Life Cycle 프로세스의 생명주기는 컴퓨터 시스템에서 프로세스가 생성되고 실행되며 종료되는 과정을 나타낸다. 프로세스의 생명주기는 5개의 단계로 나누어진다. Ready 상태와 Wait상태의 프로세스는 각각 list를 통해 작성된다. Ready리스트에 있는 프로세스는 각자 우선순위를 가지며 높은 우선순위대로 CPU를 차지한다. Wait 리스트는 순위가 없다. 대기 상태에서 벗어나기 위해선 대기 상태에 빠졌던 원인이 해결되었기 때문이다. 원인이 해결되면 다시 실행 상태가 될 수 있다. Process 생명주기 단계 생성상태에서 준비상태로의 이동과정에서는 프로세스가 처리되기 위한 메모리와 필요한 주변장치들을 확인한다. 준비상태에서 실행상태로의 이동과정에서는 미리 정해진 알고리즘에 따라 프로세..
Context Switching (컨텍스트 스위칭)? CPU가 현재 작업중인 프로세스에서 다른 프로세스로 넘어갈 때, 이전의 프로세스 정보를 PCB에 저장하고 새롭게 실행할 프로세스의 정보를 PCB에서 읽어와 레지스터에 적재하는 과정을 말한다. 보통 인터럽트가 발생하거나, 실행 중인 CPU 사용 허가시간을 모두 소모하거나, 입출력을 위해 대기해야 하는 경우에 Context Switching이 발생 즉, 프로세스가 Ready → Running, Running → Ready, Running → Waiting처럼 상태 변경 시 발생! Process는 하나이상의 Thread로 동작하기 때문에 Context Switching의 최소 단위는 TCB이다. Context? 프로그래밍에서 Context는 (동작, 작업들..
PCB(Process Control Block)? 운영체제가 프로세스를 제어하기 위해 정보(CPU 레지스터 값들)를 저장해 놓은 곳으로 프로세스의 상태 정보를 저장하는 구조체 운영체제가 프로세스 스케줄링을 위해 프로세스에 관한 모든 정보를 가지고 있는 데이터베이스 각 프로세스가 생성될 때마다 고유의 PCB가 생성되고, 프로세스가 완료되면 PCB는 제거된다. 프로세스는 CPU를 점유하여 작업을 처리하다가도 상태가 전이되면, 진행하던 작업 내용들을 모두 정리하고 CPU를 반환해야함 진행하던 작업들을 모두 저장하지 않으면 다음에 자신의 순서가 왔을 때 어떠한 작업을 해야하는지 알 수 없는 사태가 발생한다. 프로세스는 CPU가 처리하던 작업의 내용들을 자신의 PCB에 저장 다음에 다시 CPU를 점유하여 작업을 ..
System Call? System Call(시스템 콜)은 운영체제의 커널이 제공하는 서비스에 대해, 응용 프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스다. 보통 C나 C++과 같은 고급 언어로 작성된 프로그램들은 직접 시스템 호출을 사용할 수 없기 때문에 고급 API를 통해 시스템 호출에 접근하게 하는 방법이다. 사용자 프로그램이 디스크 파일에 접근하거나 화면에 결과를 출력하는 등의 작업이 필요한 경우, 즉 사용자 프로그램이 특권 명령의 수행을 필요한 경우 운영체제에 특권 명령의 대행을 요청하는 것이 시스템 콜이다. 시스템 콜은 여려 종류의 기능으로 나누어진다. 각 시스템 콜에는 번호가 할당되고 시스템 콜 인터페이스는 시스템 콜 번호와 시스템 콜 헨들러 함수 주소로 구성된 시스템 콜 테이블을 ..
Interrupt(인터럽트)? 프로그램을 실행하는 도중에 예기치 않은 상황이 발생할 경우 현재 실행 중인 작업을 즉시 중단하고, 발생된 상황에 대한 우선 처리가 필요함을 CPU에게 알리는 것 지금 수행 중인 일보다 더 중요한 일(입출력, 우선 순위 연산 등)이 발생하면 그 일을 먼저 처리하고 나서 하던 일을 계속해야한다. 외부/내부 인터럽트는 CPU의 하드웨어 신호에 의해 발생 소프트웨어 인터럽트는 명령어의 수행에 의해 발생 외부 인터럽트 입출력 장치, 타이밍 장치, 전원 등 외부적인 요인으로 발생 예) 전기신호, 기계 착오, 외부 신호, 입출력 내부 인터럽트 Trap으로 부르며, 잘못된 명령이나 데이터를 사용할 때 발생 예) 0으로 나누기가 발생, 오버플로우, 명령어를 잘못 사용한 경우(Exceptio..
Process(프로세스) & Thread(스레드)? 프로세스는 다음과 같이 정의한다. 운영체제로부터 자원을 할당받은 작업의 단위 스레드는 다음과 같이 정의한다. 프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위 한줄로 정의하면 프로세스는 작업의 단위이며 스레드는 실행 흐름듸 단위라고 할 수 있다. 프로그램과 프로세스 정적 프로그램(Static Program) 프로그램은 컴퓨터에서 실행할 수 있는 파일을 통칭한다. 단, 아직 파일을 실행하지 않은 상태이기 때문에 정적 프로그램 줄여서 프로그램이라고 부른다 프로그램은 자바나 C언어를 이용해 코드를 작성하여 완성한다. 즉, 프로그램은 코드 덩어리로 볼 수 있다. 프로세스(Process) 프로세스는 프로그램을 실행시켜 정적인 프로그램이 동적으로 변하여 프로그..
Operating System(운영체제)? 하드웨어를 관리하고, 컴퓨터 시스템의 자원을 효율적으로 관리한다. 응용프로그램과 하드웨어 간의 인터페이스로써 다른 응용 프로그램이 유용한 작업을 할 수 있도록 환경을 제공한다. 운영체제는 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 시스템 소프트웨어라고 할 수 있다. 종류로는 Window, Linux, UNIX, MS-DOS 등이 있으며, 시스템의 역할 구분에 따라 용이점이 있다. 운영체제 목적 운영체제의 목적에는 처리능력 향상, 사용 가능도 향상, 신뢰도 향상, 반환 시간 단축 등이 있다. 처리능력, 반환시간, 사용가능도, 신뢰도는 운영체제의 성능을 평가하는 기준이 된다. 처리능력(Throughput) 일정시간 내에 시스템이 처리하는..
hanseongbugi
'CS' 카테고리의 글 목록 (2 Page)