>  기사  >  시스템 튜토리얼  >  운영 체제 FAQ~

운영 체제 FAQ~

WBOY
WBOY앞으로
2024-02-18 08:15:33809검색

운영 체제 FAQ~

1: 프로세스가 세 가지 기본 상태 사이를 전환하는 일반적인 이유를 설명하세요

(1) 준비 상태의 프로세스에 대해 프로세스 스케줄러가 프로세서를 할당하면 프로세스는 준비 상태에서 실행 상태로 변경됩니다.

(2) 실행 프로세스에 할당된 타임 슬라이스가 모두 사용되어 실행을 일시 중지할 프로세서가 박탈되면 해당 상태는 실행 상태에서 준비 상태로 변경됩니다.

(3) 현재 프로세스의 실행을 차단하고 계속 실행을 불가능하게 만드는 문제가 발생하면 프로세스 상태가 실행에서 차단으로 변경됩니다.

2: OS에 스레드를 도입해야 하는 이유는 무엇인가요? 스레드를 도입하면 어떤 이점이 있나요?

(1) 프로세스가 리소스의 소유자이므로 생성, 취소 및 전환 작업에 많은 시간과 공간의 오버헤드가 필요하므로 동시성 수준의 추가 향상이 제한됩니다. 프로세스 전환 비용을 줄이기 위해 프로세스의 자원 할당 단위와 스케줄링 단위라는 두 가지 속성을 별도로 취급합니다. 즉, 프로세스는 여전히 자원 할당의 기본 단위로 사용되지만 사용되지는 않습니다. 스케줄링의 기본 단위(드물게 스케줄링되거나 전환됨)이며 스케줄링은 실행 및 전환에 대한 책임이 "스레드"에 부여됩니다.

(2) OS에 스레드를 도입하고 스레드를 스케줄링 및 디스패치의 기본 단위로 사용하면 다중 프로세서 시스템의 성능을 효과적으로 향상시키고, 프로그램이 동시에 실행될 때 발생하는 시간 및 공간 오버헤드를 줄이고, OS를 더 나은 동시성으로 만들 수 있습니다.

셋: (1) 교착상태란 무엇인가요? (2) 교착상태의 원인은 무엇입니까?

(1) 그룹의 각 프로세스가 그룹의 다른 프로세스에 의해서만 발생할 수 있는 이벤트를 기다리는 경우 프로세스 그룹은 교착 상태가 됩니다.

(2) ① 비선점형 자원 경쟁으로 인해 교착상태가 발생합니다. (비선점형 리소스는 시스템이 프로세스에 리소스를 할당하면 강제로 되돌릴 수 없으며 프로세스를 모두 사용한 후에만 해제할 수 있음을 의미합니다.)

② 소모성 자원 경쟁으로 인해 교착상태가 발생합니다. (소비 가능한 리소스는 프로세스 실행 중에 프로세스에 의해 동적으로 생성되고 소비됩니다.)

3 부적절한 프로세스 진행 순서로 인해 교착 상태 발생(프로세스 실행 시 리소스 적용 및 해제 순서가 적법한가?)

4: 프로그램을 로드하는 여러 가지 방법

(1) 절대 로딩 방법: 사용자 프로그램이 컴파일된 후 절대 주소가 있는 대상 코드가 생성되며 이는 단일 프로그래밍 환경에만 적합합니다.

(2) 재배치 가능한 로딩 방법: 로딩 모듈은 다중 프로그래밍 환경에 적합한 메모리의 허용된 위치에 로드될 수 있습니다.

(3) 동적 런타임 중 로딩 방법: 로딩 모듈이 메모리에 로딩될 때 모든 것은 여전히 ​​논리 주소이며, 프로그램이 실제로 실행될 때만 논리 주소가 물리 주소로 변환됩니다.

다섯 가지: 프로그램을 연결하는 여러 가지 방법

(1) 정적 연결 방법: 프로그램이 실행되기 전에 각 대상 모듈과 해당 필수 라이브러리 기능을 먼저 완전한 조립 모듈에 연결하고 나중에 분해하지 않습니다.

(2) 로딩 중 동적 링크: 사용자 소스 프로그램을 컴파일한 후 얻은 대상 모듈 집합을 로딩과 링크를 동시에 수행하는 링크 방법을 사용하여 메모리에 로드합니다.

(3) 런타임 동적 연결: 특정 대상 모듈을 연결하고, 프로그램 실행 중 대상 모듈이 필요할 때만 연결

Six: (1) 가상 스토리지란 무엇입니까, (2) 특징은 무엇입니까?

(1) 논리적으로 메모리 용량을 확장할 수 있는 요청 전달 기능과 교체 기능을 갖춘 메모리 시스템입니다. 논리적 용량은 메모리 용량과 외부 스토리지 용량의 합으로 결정됩니다. 실행 속도는 메모리에 가깝고 비용도 외부 스토리지에 가깝습니다.

(2) ①다중 실행: 작업 내 프로그램과 데이터를 여러 번 분할하여 메모리에 로드하여 실행할 수 있습니다.

②(기본) 상호 교환성: 작업이 실행되는 동안 작업의 프로그램과 데이터를 교체할 수 있습니다.

③가상성: 논리적으로 메모리 용량을 확장합니다.

세븐: (1) 지터란 무엇인가요? (2) 지터의 원인은 무엇입니까?

(1) 다중 프로그래밍이 너무 높으면 메모리와 외부 세계 사이에 페이지가 자주 예약되므로 이 때 페이지를 낚시하는 데 필요한 시간이 프로세스의 실제 실행 시간보다 길어집니다. 시스템 효율이 급격하게 떨어지고 심지어 시스템이 붕괴되는 현상을 지터(Jitter)라고 합니다.

(2) 그 이유는 시스템에서 동시에 실행되는 프로세스가 너무 많아서 각 프로세스에 할당된 물리적 블록이 너무 적어 프로세스의 정상적인 작동을 위한 기본 요구 사항을 충족할 수 없기 때문입니다. 각 프로세스가 실행 중일 때 결함이 자주 발생하면 누락된 페이지를 메모리로 전송하도록 시스템에 요청해야 하므로 페이지를 입출력하기 위해 줄지어 대기하는 시스템의 프로세스 수가 증가하여 지터가 발생합니다.

에잇: (1) 완충지대란 무엇인가요? (2)버퍼 관리를 도입하게 된 가장 큰 이유는 무엇인가요?

(1) 버퍼는 특수한 하드웨어 레지스터나 메모리로 구성될 수 있는 저장 영역입니다.

버퍼 관리의 주요 기능은 이러한 버퍼를 구성하고 버퍼를 획득하고 해제할 수 있는 수단을 제공하는 것입니다.

(2) 버퍼 관리를 도입하는 주요 이유는 다음과 같습니다.

① CPU와 I/O 장치 간의 속도 불일치를 완화합니다.

②CPU 인터럽트 빈도를 줄이고 해당 CPU 인터럽트 시간 제한을 완화합니다.

3데이터 입자 수 불일치 문제를 해결합니다.

4CPU와 I/O 장치 간의 병렬성을 향상시킵니다.

위 내용은 운영 체제 FAQ~의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 linuxprobe.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제