jun-wiki

View My GitHub Profile

Posts (Latest 10 updated) :
Read all
Contents:
  1. 프로세스 종료 메시지
  2. 실행 파일 쓰기 금지 (Deny Write on Executables)

너무 길어져 좀 나눴다

프로세스 종료 메시지

사용자 프로세스가 종료될 때마다

아래 형식으로 프로세스의 이름과 종료 코드 출력

printf ("%s: exit(%d)\n", ...);
  • 출력해야 하는 이름은 fork()에 전달된 전체이름

  • 커널 스레드나 halt 시스템 콜이 호출될 때에는 출력 X

  • 프로그램 로딩 실패시의 메시지는 선택사항

그 외에도 추가 메세지 출력 X

감점 사항이 될 수 있음


실행 파일 쓰기 금지 (Deny Write on Executables)

프로세스가 실행 중인 코드를 디스크에서 변경하려 하면 결과가 예측 불가능해지기 때문에, 많은 OS가 이를 금지한다

프로젝트 3에서 가상 메모리를 구현하면 특히 중요하다

  • 열린 파일에 대한 쓰기를 막으려면 file_deny_write() 를 사용

  • 이후 file_allow_write() 를 호출하면 쓰기가 다시 허용
    (단, 다른 오프너가 해당 파일의 쓰기를 금지하고 있지 않은 경우에 한함)

  • 파일을 닫아도 쓰기는 다시 허용


따라서 프로세스의 실행 파일에 대한 쓰기를 금지하려면,
그 프로세스가 실행 중인 내내 그 실행 파일을 열린 상태로 유지해야 한다



나누고 보니 얼마 안되지만 이미 글을 썼기에 늦었다

꒰ ᐢ ◞‸◟ᐢ꒱