2017-01-05 2 views
0

리눅스 캐시에 대해 공부할 때 적절한 정의를 모른 채 I/O라는 용어를 사용하고있는 것으로 나타났습니다.I/O의 정의는 무엇이며 I/O로 분류되는 작업은 무엇입니까?

내가 리눅스 페이지 캐시에 대해 나에게 반응 사람을 인용, 기본적으로

"당신은 O/I을 수행 할 때 리눅스 커널 채워집니다 당신이 파일을 열 때 페이지 캐시 (및 사용)"내가 처리 sys 명령과 같은 I/O라는 용어는 파일을 여는 것으로 판명되었지만 I/O로 간주되지는 않습니다.

또한 I/O 정의는 거의 온라인상에서 논의되거나 문서화되지 않습니다.

내 질문에 이르게합니다. I/O 정의 (특히 디스크 액세스와 관련하여)는 무엇이며 I/O로 분류 할 수있는 작업은 무엇입니까?

+0

https://en.wikipedia.org/wiki/Input/output을 참조하십시오. – xmojmr

답변

1

I/O 정의는 무엇이며 I/O로 분류되는 작업은 무엇입니까?

확실한 대답이없는 질문입니다. (1) 시스템에 달려 있으며 (Linux 사양에 따라 도움을받습니다) (2) 관점에 달려 있습니다. 그것은 사용자 관점에서 입/출력인가? 과정? 커널?

프로세스의 관점에서 볼 때 I/O는 리눅스에서 읽기 또는 쓰기 시스템 서비스를 사용하는 모든 작업이라고 말할 수 있습니다. 이런 의미에서 OPEN은 프로세스 데이터를 읽거나 쓰지 않기 때문에 I/O가 아닙니다.

짝수 정의는 화면에 쓰는 것을 설명하지 않습니다 (그러나 디스크에 집중하도록 요청했습니다).

그러나 퍼스펙티브를 커널의 퍼스펙티브로 변경하면 I/O 범위가 확장됩니다. FILE 열기 요청은 하나 이상의 디렉토리 내용을 읽고 디스크의 헤더 파일 정보를 읽어야 할 수도 있습니다. 따라서 디스크와 메모리 간의 모든 데이터 이동은 I/O로 간주 될 수 있습니다.

사용자 관점에서 보면 I/O는 프로세서 내부 또는 외부로 데이터를 이동시키는 모든 것입니다. 그것은 이론적입니다. 앞서 언급했듯이 컴퓨터는 비디오 메모리를 업데이트하여 텍스트를 화면에 쓸 수 있습니다. 하나는 메인 메모리와 비디오 메모리 사이에서 구분할 수 있지만 논리적 인 의미에서 실제 데이터 이동은 없다.