🥌 커널이란?운영체제 중 항상 메모리에 올라가 있는 운영체제의 핵심 부분으로써 하드웨어와 응용 프로그램 사이에서 인터페이스를 제공하는 역할을 하며 컴퓨터의 자원들을 관리하는 역할을 한다. 즉, 커널은 인터페이스로써 응용 프로그램 수행에 필요한 여러가지 서비스를 제공하고 여러가지 하드웨어등의 리소스를 관리한다. 하지만 커널은 컴퓨터자원과의 상호작용으로 인해 사용자와는 상호작용하기 어렵다. 때문에 사용자와의 직접적인 상호작용을 하기위해 만들어진 쉘(shell)을 사용해야 한다. 추상화컴퓨터의 자원을 관리하는 커널을 더 큰 역할로 분류를 해보자면 물리적 자원과 추상화 자원을 관리하는 것을 말한다. 마치 하나의 하드웨어를 여러개처럼 보이게 하는 기술과도 같다. 관리자물리적 자원 이름→추상화한 자원 용어태스크..
CS/💻 운영체제

Blocking 과 Non-Blocking 사람들이 굉장히 많이 헷갈려하는 Blocking 과 Non-Blocking에 대해 알아보자 중요한것은 Blocking 과 Non-Blocking은 동기와 비동기와는 관점을 다르게 봐야한다. Blocking과 Non-Blocking은 제어권이 어디에 있느냐에 대한 관점이다 작업을 시킨 주체에게 제어권이 있는지 혹은 작업을 처리하는 주체에게 제어권이 있는지에 대한 것이다. Blocking : 직접 제어를 할 수 없는 대상의 작업이 끝날 때까지 기다려야 하는 경우 Non-Blocking : 직접 제어할 수 없는 대상의 작업이 완료되기 전에 제어권을 넘겨주는 경우 Blocking 직접 제어를 할 수 없는 대상의 작업이 끝날 때까지 제어권을 넘겨주지 않는 것이다. 예를 ..

💬 프로세스 프로세스의 사전적 의미로는 "컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램"이라는 의미로 프로그램의 실행 상태이자, 메모리 공간에 할당된 실체이다. 각 프로세스는 생성되면서 고유한 메모리 공간을 할당 받게 되고 때문에 프로세스는 다른 프로세스와 독립적으로 존재하여 하나의 프로세스에 충돌이 발생해도 다른 프로세스에는 영향을 주지 않는다. 즉, 이해하기 쉽게 말하자면 정적인 프로그램을 실행시켜 동적으로 변환되면서 실행된 상태를 말하는 것이다. 위에서 말한 프로그램과 혼동이 올 수 있다. 두 개의 차이를 명확히 알아보자 프로그램 프로세스 어떤 작업을 하기 위해 실행할 수 있는 파일 실행되어 작업중인 컴퓨터 프로그램 파일이 저장 장치에 있지만 메모리에는 올라가 있지 않은 정적인 상태 메모리에 ..