728x90
반응형
User Mode
유저모드는 일반 사용자 애플리케이션이 실행되는 모드로, 제한된 권한을 가지고 있다.
즉, 프로세스는 직접 하드웨어 자원에 접근할 수 없고, 반드시 커널을 통해서만 하드웨어 자원에 접근해야 한다.
이는 보안과 안정성을 유지하기 위함인데, 유저모드는 잘못된 프로그램 실행이나 메모리 침범 등이 다른 프로그램이나 커널에 영향을 미치지 않도록 보호하는 역할을 한다.
Kernal Mode
커널모드는 운영 체제의 핵심 부분인 커널이 실행되는 모드로, 전체 시스템 자원에 대한 완전한 권한을 가지고 있다.
이 모드에서는 하드웨어 자원에 직접 접근하고 제어할 수 있다.
커널모드는 위험성을 내포하고 있는데 커널모드에서의 잘못된 작업은 시스템 전체에 영향을 미칠 수 있으며, 시스템이 불안정해지거나 충돌할 수 있습니다.
System Call
유저모드의 애플리케이션이 하드웨어 자원이나 시스템 기능에 접근해야 할 때, 시스템 콜(System Call)을 통해 유저모드에서 커널모드로 전환된다.
이때 커널은 요청된 작업을 수행한 뒤 다시 유저모드로 전환되어 애플리케이션이 계속 실행된다.
앞서 다뤘던 open(), close(), read(), write(), lseek(), stat() 등의 함수는 모두 파일에 접근하기 위해 커널에 요청을 보내는 시스템 콜 함수이다.
728x90
반응형
'C언어 > 시스템 소프트웨어' 카테고리의 다른 글
[시스템 소프트웨어/C언어] 파일의 유형 확인 (0) | 2024.10.09 |
---|---|
[시스템 소프트웨어/C언어] stat(), fstat() (0) | 2024.10.08 |
[시스템 소프트웨어/C언어] lseek, 파일 오프셋 변경 (파일 작업 위치 변경) (0) | 2024.10.08 |
[C언어] perror, errno, exit (0) | 2024.10.07 |
[C언어] 파일 입출력 (open, close, write, read) (0) | 2024.10.07 |