운영체제
두 가지 역할을 가진 소프트웨어
1) 하드웨어(CPU, Memory, Devices 등) 관리
2) 응용프로그램과 하드웨어 간의 인터페이스 역할을 수행하여 소프트웨어가 하드웨어에 액세스
Linux
운영체제 중 하나이고 세 가지 구성요소로 구성
1) 커널(Kernel) : 하드웨어와 직접 상호 작용하고 운영 체제의 기능을 제공한다.
2) 시스템 라이브러리(System Libraries) : 응용 프로그램이 운영체제 기능을 사용할 수 있도록 인터페이스를 제공하는 라이브러리들이다.
3) 시스템 유틸리티(Sysem Utilitites) : 운영체제 관리 및 유지 보수 작업에 사용되는 유틸리티 프로그램들이.
커널(Kernel)
운영체제의 핵심 기능을 구현하고 하드웨어와 응용프로그램간의 상호 작용을 관리하면서 시스템의 모든 것을 통제하면서자원을 효율적으로 관리하는 운영체제 서비스를 제공하는 소프트웨어이다.
2. 주요 기능
01 하드웨어 관리
시스템 자원을 관리한다. 이를 통해 스케줄링(프로세스에 처리기를 할당), 메모리 관리 등을 수행하여 시스템 자원의 효율성을 극대화 한다.
02 시스템 호출
커널은 응용 프로그램이 운영 체제 기능을 사용할 수 있도록 시스템 호출(System Call)이 존재한다. 이를 통해 네트워크 통신, 프로세스 생성 및 제어 등의 운영체제 기능을 요청할 수 있다.
03 보안 관리
사용자 및 그룹의 권한을 확인하고, 파일 및 리소스에 대한 접근 권한을 제어하여 시스템의 안전성과 보안을 보장한다.
커널이 하드웨어와 소프트웨어의 중간자 역할을 수행하기 때문에 응용 프로그램은 하드웨어에 직접 접근하지 않고 커널에게 대신 호출해달라고 한다. 그렇기 때문에 사용자 모드와 커널모드가 존재한다.
사용자 모드
응용프로그램(메모장, 그림판)은 사용자 모드에서 실행된다. 사용자 모드에서는 접근할 수 있는 영역에 제한이 존재 한다. 그렇기 때문에 프로그램 자원 간의 함부로 침범할 수가 없다. 응용 프로그램이 운영 체제의 기능을 사용하려면 system call을 호출을 해야 한다. 그러면 사용자 모드에서 커널 모드로 진입할 수 있다.
커널 모드
커널 모드에서는 운영체제 커널(윈도우, 리눅스 운영체제 코드)이 실행된다. 커널 모드에서는 특권 명령을 실행할 수 있으며 하드웨어 자원에 직접적인 접근과 제어가 가능하다. 또한 사용자 모드와 달리 모든 자원에 접근 명령을 할 수 있다. 시스템 호출을 받아 응용 프로그램의 요청을 처리하고 필요한 작업을 수행을 마치면 다시 사용자 모드로 돌아간다.
'cs공부 > 운영체제' 카테고리의 다른 글
운영체제 - 제3자에게 부탁하기(AutoResetEvent,Manualresetevent ) (0) | 2023.05.31 |
---|---|
운영체제 - 캐시메모리, 캐시 컨트롤러,레지스터, RAM의 상호 작용(캐시 미스(Cache Miss),캐시 히트(Cache Hit) ) (0) | 2023.05.26 |
운영체제 - Backoff(Thread.Sleep(0), Thread.Yield()) (0) | 2023.05.26 |
운영체제 - Semaphore(세마포어), Mutex(뮤텍스) (0) | 2023.05.23 |
운영체제 - SpinLock(스핀락) - Test-and-Set, Compare-and-Swap (0) | 2023.05.22 |
댓글