:roll: 프로세스가 4개가 차례로 도는 프로그램을 만들고자 하는데요, 꼭 차례대로 돌아야하며 하나라도 죽으면 종료가 되어야 합니다.
우선 task를 돌려주는 프로그램이 있어서 fork()->execl()로 각각의 task를 실행하게 해주고, 공유메모리와 4개의 세마포어를 이용하여 서로 주고 받으면서 차례대로 실행을 하는것입니다. 각각의 태스크는 무한루프안에서 자기의 세마포어를 기다리다 받으면 실행하고 종료되면 다른 프로세스에서 세마포어를 주고 자기의 세마포어를 기다리는 식입니다.
다음은 헤더파일에 전역으로 구조체를 선언하고
cgi로 데이터를 받아 선언된 구조체에 각각 넣고.
이를 화면에 출력하는 것입니다.
1초 간격으로 계속해서 cgi를 실행하고요..
그런데.. 이렇게 사용하면. free명령을 통해 리눅스에서 보면..
계속해서 사용가능한 메모리가 줄어듭니다.
기본적으로 전역으로 선언한 메모리는 메인프로그램(여기서는 cgi)이
죽으면 free되지 않나요?
다른 처리를 가해야 하나요..
어떻게 해야하는지 알려주세요..
참고로. ps하면 이전에 수행한 cgi는 죽어 있습니다.
지금 CGI로 웹을 구현하고 있습니다.
그런데, 문제가 생겼습니다.
바로 퍼미션에 관한 문제입니다..
웹서버는 thttpd를 사용하는데요..
문제는 cgi 파일을 컴파일 할때..
chmod u+s xxx.cgi
로 퍼미션을 주었기 때문에
보안에 취약 한 걸로 알고 있습니다.
이를 해결 할려면 어떻게 해야하는지 알려주세요..
부탁드립니다..
그리고, HTML파일의 퍼미션을 744로 하지 않으면
실행이 되질 않는데.. 이유가 궁금합니다..
사용자가 실행능력을 가져야.. html 파일이 수행되는지...