Linux 커널 모드 및 사용자 모드

Linux 커널 모드 및 사용자 모드

Linux 시스템에서 사용자 모드에서 커널 모드로 전환하는 과정을 더 잘 이해하려고 합니다.

프로세스가 낮은 수준의 하드웨어/제한된 메모리 공간에 액세스해야 하는 경우 커널에 시스템 호출을 실행하고 커널이 대신 코드를 실행하고 정보를 프로세스에 다시 전달합니까? 아니면 커널이 프로세스를 권한 모드로 설정했고 이제 프로세스 자체가 커널 모드에서 실행되고 요청한 모든 리소스에 액세스할 수 있습니까?

감사해요!

답변1

커널에 시스템 호출을 발행하면 커널이 대신 코드를 실행하고 정보를 프로세스에 다시 전달합니까? 아니면 커널이 프로세스를 특권 모드로 설정했고 이제 프로세스 자체가 커널 모드에서 실행되고 그가 요청한 모든 리소스에 액세스할 수 있습니까?

예. 시스템 호출에 따라 위 중 하나입니다.

때때로 프로세스가 커널 모드로 전환되어 특정 작업을 수행합니다. 때로는 커널 스레드가 작업, 특히 I/O 및 파일 시스템과 관련된 작업을 처리하는 경우가 있습니다. 의 경우 gettimeofday()vDSO는 커널 공간에 들어가지 않고 값만 읽는다는 의미입니다.

시스템 호출 인터페이스를 설명하는 기사를 읽어보세요.LWN의 시스템 호출 분석. x86 기반 Linux의 세부 사항은 아키텍처별로 다르므로 다른 운영 체제나 CPU 유형으로 이식할 수 없습니다. 그러나 비슷한 개념이 있을 수 있습니다.

사용분석 도구귀하의 워크로드에 어떤 스택이 적합한지 확인하세요. 작업 부하에 대한 일반적인 "시스템 CPU" 비율을 알아보세요.

관련 정보