지난 시험지를 검토하고 있는데 우리 대학에서 확인할 수 있도록 답을 제공하지 않았습니다. 제가 이해한 것이 맞는지 알려주실 수 있고, 그렇지 않다면 정정해 주시기 바랍니다.
질문:Linux 시스템에서 실행되는 프로그램 P는 텍스트가 포함된 디스크의 파일 이름과 경로를 인수로 사용하여 파일을 열고 파일의 첫 번째 문자를 읽습니다. 프로그램이 이미 실행 중이고 파일이 존재한다고 가정하고 발생할 수 있는 디스크 읽기 요청을 나열하십시오.
• 각 디스크 액세스의 목적.
• 디스크 읽기 요청이 항상 발생하지 않는 이유.
시도:캐시 적중이 발생할 수 있으므로 디스크 읽기 요청이 항상 발생하지 않을 수 있으며 따라서 디스크 읽기 요청 없이 캐시에서 파일을 읽을 수 있습니다. 이것이 발생하지 않으면 디스크 액세스가 발생합니다. 하나는 파일 이름을 가져오는 데 사용되고, 다른 하나는 파일의 경로를 가져오는 데 사용되며, 마지막 하나는 파일에서 첫 번째 문자를 읽는 데 사용됩니다.
답변1
캐시 적중이 발생할 수 있으므로 디스크 읽기 요청이 항상 발생하지 않을 수 있으며 따라서 디스크 읽기 요청 없이 캐시에서 파일을 읽을 수 있습니다.
정확하고 완전합니다.
이것이 발생하지 않으면 디스크 액세스가 발생합니다. 하나는 파일 이름을 가져오는 데 사용되고, 다른 하나는 파일 경로를 가져오는 데 사용되며, 마지막 하나는 파일에서 첫 번째 문자를 읽는 데 사용됩니다.
이는 완전하지도 않고 부분적으로 부정확합니다. 실제로 다음 항목에 액세스할 수 있습니다.
- 파일 시스템 루트 디렉터리의 인덱스 노드입니다.
- 적어도 하나의 블록에는 루트 디렉터리의 파일 목록이 포함되어 있습니다.
- 파일 경로의 각 디렉터리에 대해 이 작업을 반복합니다. (해당되는 경우 기호 링크 탐색도 추가됩니다.)
- 파일의 인덱스 노드입니다.
- 파일 콘텐츠의 첫 번째 블록입니다.
콘텐츠가 여러 블록에 분산될 수 있으므로 파일 시스템에 따라 이러한 각 항목에는 하나 이상의 디스크 읽기가 포함될 수 있습니다. 파일 블록에 액세스하려면 블록 목록이 포함된 블록에 액세스해야 할 수 있으며 때로는 여러 수준까지 깊어질 수 있습니다.
이러한 액세스 외에도 프로그램 코드의 일부와 스왑 영역의 데이터를 RAM으로 로드하기 위한 디스크 액세스가 있을 수 있습니다. 프로그램이 실행 중이라고 가정하는지 여부가 질문의 표현에서 명확하지 않습니다.관련 비트는 RAM에 위치합니다.. 디스크에 이미 있지만 자동 설치 디렉터리에 있는 파일과 같이 시험 설정자의 의도가 아니라고 확신하는 다른 미묘한 부분이 있을 수 있습니다. 설치하기 전에 로드해야 합니다.