본문 바로가기

Data Engineer30

프로세스 스케줄링이 뭘까❓ 컴퓨터에는 여러 개의 프로세스가 시스템 내에 존재하기에 자원을 할당할 프로세스를 선택해야 한다. 이것을 스케줄링이라 한다. 즉 프로세스 스케줄링은 프로세서 사용시간을 프로세스들에게 분배하는 것이다. 스케줄링의 목적은 시스템의 성능을 향상시키는 것이다. 시스템 성능의 지표에는 무엇이 있을까 ❓ 응답 시간 : 작업 요청으로부터 응답을 받을 때까지의 시간 작업 처리량 : 단위 시간 동안 완료된 작업의 수 자원 활용도 : 주어진 시간 동안 자원이 활용된 시간 이외에도 다양한 지표들이 있지만 지표의 종류보다 중요한것은 목적에 맞게 지표를 선택해 스케줄링 기법을 따르는 것이다. 예를 들어서 응답 시간이 중요한 시스템은 대화형 시스템에서, 작업 처리량은 일괄처리 시스템에서 자원 활용도는 비싼 장비의 시스템일 경우 중.. 2021. 1. 4.
스레드에 대해 알아보자 자원을 할당받으면 프로세스가 그 자원을 제어하는 것이 운영체제의 기본이다. 여기서 스레드란 프로세스가 제어하는 부분을 이야기하는 것으로 하나의 프로세스는 여러 개의 스레드를 가질 수 있다. 스레드란 ❓ 하나의 프로세스 안에서 다른 스레드들과 자원은 공유하면서 여러 개의 제어를 가능하게 하는 것이 스레드이다. 스레드는 Thread ID, 제어정보, 지역 데이터, 지역 데이터를 저장하는 스택이 하나의 스레드 구성요소가 되며 자원을 공유하기 때문에 Light Weight Process(LWP)라고 불린다. 스레드가 여러 개면 CPU를 병렬적으로 사용할 수 있어 프로세서 활용의 기본단위이다. 한 프로세스 내에서의 메모리 공간 같은 프로세스의 스레드들은 동일한 주소 공간을 공유하고 있어서 힙, 데이터, 코드의 자.. 2021. 1. 3.
인터럽트를 알아보자 인터럽트란 무엇일까 ❓ 예상치 못한 외부에서 발생한 이벤트를 말한다. 인터럽트의 종류는 다양하지만 대표적으로 I/O interrupt가 있다. 예를 들어서 게임(하나의 프로세스)을 하고 있을 때 언제 마우스를 눌러 총이 발사할지 프로세스는 예상하지 못한다. 따라서 예상하지 못한 외부에서 발생한 이벤트 인터럽트가 발생한 것이다. 인터럽트는 어떻게 처리될까 ❓ 인터럽트가 발생하면 커널이 개입하여 프로세스를 중단시킨 다음 인터럽트를 처리하는데 인터럽트 처리 과정은 2가지로 나뉜다. Interrupt handling : 인터럽트의 발생장소와 원인을 파악하여 인터럽트 서비스를 할 것인지 말 것인지 결정한다. Interrupt service : 인터럽트를 서비스하기로 결정했다면 인터럽트 서비스 루틴을 호출한다. 먼.. 2020. 12. 31.
운영체제가 프로세스를 어떻게 관리할까❓ 작업(Job)과 프로그램(Program)은 컴퓨터 시스템에서 실행 요청 전의 상태라 프로그램과 프로세스는 다르다. 프로세스가 정확히 무엇인지 알아보도록 하자. 프로세스(process)란 실행을 위해서 커널에 등록된 작업으로 커널에 의해 관리되는 실행 중인 프로그램이라고 할 수 있다. 프로세스는 프로세스 관리 블록(PCB)을 할당받는 개체로 각종 자원들을 요청하고 할당받을 수 있다. 따라서 실행 중에 각종 자원을 요구하고 할당받고 반납하는 능동적인 개체이다. 프로세스 관리 블록(PCB, Process Control Block)이란 ❓ 메모리 영역은 프로세스가 쓰는 공간과 커널 공간이 있으며 PCB는 커널 공간 내에 존재하고 프로세스가 생성 시 생성된다. OS가 프로세스 관리에 필요한 정보를 저장하는 곳으로.. 2020. 12. 31.
운영체제의 구조와 기능을 간단히 살펴보자 운영체제는 커널과 유틸리티 2개의 구조로 되어있다. 커널(Kernel) : OS의 핵심 부분으로 가장 빈번하게 사용되는 기능들을 담당하기에 메모리에 상주되어있다. 유틸리티(Utility) : 비상주 프로그램으로 UI등의 서비스 프로그램을 뜻한다. 👀 단일구조 단일 구조일 경우 커널이 거대해지고 오류와 버그, 추가 기능 구현 등의 유지보수가 어렵다. 또한 동일 메모리에 모든 기능이 있어 한 모듈의 문제가 전체 시스템에 영향을 줄 수 있다. 예를 들어서 메모리 관리자 모듈에 악성코드가 있다고 한다면 나머지 모듈들에도 악성코드가 접근 가능하다. 👀 계층구조 이렇게 모듈별로 계층을 두어 유지보수가 쉽고 설계를 단순화한다. 그러나 하나의 모듈에 접근하기 위해 여러 모듈을 거쳐 접근해야한다. 운영체제의 기능 1️⃣.. 2020. 12. 31.
운영체제를 본격적으로 들어가기 전에 - 컴퓨터 시스템 개요 운영체제란 ❓ HW(컴퓨터 시스템)을 효율적으로 관리해서 사용자나 응용 프로그램에게 서비스를 제공하는 것 하드웨어는 크게 3종류로 나뉜다. 프로세서(CPU, GPU) 메모리(DRAM, Disk) 주변장치(키보드,마우스,모니터, 네트워크 모뎀) 프로세서(Processor) 컴퓨터 모든 장치의 동작을 제어하며 연산 수행을 담당한다. 즉 컴퓨터의 두뇌로써 중앙처리장치 레지스터(Register) 프로세서 내부에 존재하는 메모리 레지스터 종류에 따라서 1. 사용자 가시 레지스터 데이터 레지스터(DR, Data Register) 함수 연산에 필요한 데이터를 저장, 값 혹은 문자등을 저장하여 산술/논리 연산 수행 주소 레지스터(AR, Address Register) 유효 주소를 계산하는데 필요한 주소의 일부분을 저장.. 2020. 12. 30.