/proc 파일 시스템을 사용하여 "멀티 캐스터"를 시뮬레이트하는 커널 모듈을 작성해야합니다.IO 시스템에 정보 저장
기본적으로 다음과 같은 시나리오를 지원해야합니다
1)/proc 파일에 하나의 쓰기 액세스를 허용 많은 읽기/proc 파일에 액세스합니다.
2) 모듈에는 마지막으로 성공적으로 기록한 내용의 버퍼가 있어야합니다. 각 쓰기는 모든 판독기에서 읽어야합니다.
시나리오 2, 작성자가 무언가를 써서 두 명의 독자 (A와 B)가 있고 버퍼의 내용을 읽은 다음 A가 다시 읽으려고하면이 경우 wait_queue로 들어가서 대기해야합니다 다음 메시지의 경우 이 아니라이 같은 버퍼를 다시 가져야합니다.
이미 현재 버퍼를 읽는 모든 pid의 맵을 유지해야하며, 다시 읽으 려하고 버퍼가 변경되지 않은 경우 새로운 버퍼가있을 때까지 차단해야합니다. 나는지도없이 그 정보를 저장할 수있는 방법이 있다고 생각하고있다. 이미 I/O 시스템 내부에 중복 된 필드가 있다는 소식을 들었습니다.이 필드는 이미 현재 버퍼를 읽었을 때 프로세스에 플래그를 지정할 수 있습니다.
누군가 내가 그 분야를 찾아야하는 팁을 줄 수 있습니까? pid와 버퍼의 "맵"을 유지하지 않고 현재 프로세스의 정보를 어떻게 저장할 수 있습니까?
감사합니다.