목차
운영체제 권한
운영체제 권한은 주로 시스템의 안정성, 보안, 그리고 자원의 효율적 관리를 위해서 존재합니다.
1.
보안
•
권한 관리는 무분별한 자원 접근을 제한하여 보안을 강화합니다.
예를 들어, 일반 사용자가 시스템 설정을 변경하거나 중요한 시스템 파일에 접근하는 것을 막음으로써 잠재적인 위험을 줄일 수 있습니다.
•
악의적인 소프트웨어가 시스템을 감염시키거나 중요한 데이터를 손상시키는 것을 방지합니다.
2.
안정성
•
운영체제는 프로세스 간에 자원을 공정하게 할당하고 각 프로세스가 시스템 리소스를 과도하게 사용하지 않도록 제어합니다. 이는 시스템의 전반적인 안정성을 유지하는 데 중요합니다.
•
특정 프로세스에 문제가 생겨도 시스템 전체에 영향을 미치지 않도록 격리할 수 있습니다. 각 프로세스는 할당된 권한과 자원 내에서만 작동하므로, 한 프로세스의 실패가 다른 프로세스에 영향을 주지 않습니다.
예를 들어, 소프트웨어 A에 문제가 생겨도 소프트웨어 B에 문제가 생기지 않게 하는 것이 바로 안정성입니다.
3.
자원 관리
•
운영체제는 하드웨어 자원을 효율적으로 관리하고 할당하기 위해 권한을 사용합니다. 이를 통해 시스템은 여러 프로세스가 동시에 동일한 자원을 요구할 때 충돌을 방지하고 자원을 공평하게 분배할 수 있습니다.
•
권한 관리는 특정 작업이나 프로세스가 시스템 리소스를 독점하는 것을 방지하여 다른 프로세스가 필요한 자원을 이용할 수 있도록 보장합니다.
운영체제 권한 종류
커널 모드
1.
정의 및 권한
•
커널 모드는 운영체제의 가장 깊은 수준에서 작동하는 모드로, CPU와 메모리 등 핵심 하드웨어 자원에 대한 전체적인 제어 권한을 가집니다.
•
시스템의 모든 하드웨어를 직접 제어할 수 있는 가장 높은 권한을 가지며, 운영체제의 핵심 기능들이 이 모드에서 실행됩니다.
2.
기능
•
메모리 관리, 프로세스 스케줄링, 파일 시스템 관리, 네트워크 통신 등 시스템의 기본적인 운영을 담당합니다.
•
하드웨어와 직접적으로 상호 작용하며, 드라이버와 같은 하드웨어 관련 코드가 실행됩니다.
사용자 모드
1.
정의 및 권한
•
사용자 모드는 일반 응용 프로그램이 실행되는 환경으로, 제한된 권한으로 시스템 리소스를 사용합니다.
•
운영체제의 핵심 부분과는 분리되어 있으며, 필요한 서비스나 자원에 접근하기 위해 시스템 호출을 사용해 커널에 요청을 보냅니다.
2.
기능
•
대부분의 사용자 애플리케이션은 이 모드에서 실행되며, 사용자 인터페이스와 응용 프로그램 로직을 처리합니다.
예시
실제 게임 개발에서 쓰이는 코드로 예시를 들어보겠습니다.
아래 모든 로직은 우선, 사용자 모드에서 실행됩니다.
using System.IO;
public class FileManager : MonoBehaviour
{
void Start()
{
var path = "C:/example/data.txt";
// 파일을 읽어 들이는 작업
// 이 부분은 사용자 모드에서 커널 모드로 현재 파일이 있는지 확인하는 요청을 합니다.
if (File.Exists(path))
{
var contents = File.ReadAllText(path);
// 이 부분도 사용자 모드에서 커널 모드로 파일을 읽어달라는 요청을 합니다.
Debug.Log("File contents: " + contents);
}
else
{
Debug.Log("File does not exist");
}
}
}
C#
복사