Search

[1장 리눅스 개요]2.커널

Publish Date
Tags
Status
Done
1 more property
커널
컴퓨터 시스템에서 프로세스가 자원에 안전하게 접근하고 충돌을 방지하며 효율적인 자원 관리를 가능하게 하는 커널의 역할과 필요성을 이해한다.

커널

커널의 필요성: 직접 접근의 문제점

저장 장치에 프로세스가 직접 접근한다면 아래와 같은 문제가 발생할 수 있다.
명령 실행 순서 제어 실패:
여러 프로세스가 동시에 저장 장치를 제어하면 순서가 엉킬 가능성이 높다.
예를 들어, 프로세스 A가 데이터를 쓰고자 지정한 위치에 프로세스 B의 개입으로 잘못된 위치에 쓰여 데이터가 손상될 수 있다.
비인가 접근 문제:
저장 장치에 원래 접근이 불가능해야 할 프로세스가 장치에 접근하여 데이터가 손상되거나 보안이 위협 받을 수 있다.

커널의 역할과 동작

이러한 문제를 방지하기 위해 커널이 모든 자원은 접근을 중재한다. 커널은 프로세스가 장치에 직접 접근할 수 없도록 한다.
1.
커널의 간접 접근
프로세스는 커널을 통해서만 장치에 접근 가능하다.
이는 CPU의 모드기능(커널모드와 사용자모드)을 통해 구현된다.
2.
CPU 모드 기능
일반적으로 CPU에는 사용자모드와 커널모드 두 종류 모드가 있다.
사용자 모드: 프로세스는 사용자 공간에서 제한적으로 실행되며 장치 접근이 불가능하다.
커널 모드: 커널만이 이 모드에서 실행되며, 장치에 직접 접근하거나 시스템 자원을 관리할 수 있다.
3.
안전한 자원 관리
커널은 프로세스 간의 충돌을 방지하고, 각 프로세스가 필요한 자원을 적절히 배분한다.
저장 장치를 비롯한 시스템 자원에 대해 제어와 관리를 제공한다.

커널의 주요 기능

장치 제어: 저장 장치와 같은 하드웨어의 접근 및 제어를 관리
시스템 자원 관리: 메모리, CPU, 네트워크 등 프로세스가 사용하는 자원을 관리
시스템 자원 배분: 다수의 프로세스가 공존하는 시스템에서 자원을 공정하게 할당
Search
Main PageCategoryTagskkogggokkAbout MeContact