Low-Language 코딩
C 언어로 시스템 콜을 이용하여 Bash 명령어 구현
- mkdir : 디렉토리 생성 명령어
- cd : 디렉토리 이동 명령어
- cat : 파일 내용 읽기
- ls -l : stat 명령과 opendir 을 통해 ls -l 구현
- vi : 표준 입력으로 파일을 생성해서 내용을 넣거나 이미 파일이 존재하면 해당 파일의 내용을 출력하고 새로 입력받는 내용을 뒤에 추가
부모 프로세스와 자식 프로세스의 Signal 처리를 다르게 적용하기
- sigpromask()를 이용하여 block된 프로세스가 wake up 되지 않도록 막아줌
- 자식프로세스에서 sigaction을 수정하여 부모와 자식이 각각 signal처리를 다르게 하도록 구현
메시지 큐만을 이용하여 채팅프로그램 구현 메시지큐의 1번 mtype에 현재 채팅방에 참여한 인원수와 메시지 인덱스를 보관하고 채팅방에 참여한 유저들은 1번 메시지를 확인하여 메시지를 보내는 로직으로 구현
3번 프로그램과 비슷하지만 메시지 큐 대신 세마포어와 공유 메모리를 사용하여 채팀 프로그램 구현 (4명 제한) 9개의 세마포어를 사용하여 현재 채팅방에 존재하는 채팅 메시지의 개수와, 아직 읽지 못한 채팅 메시지의 개수를 이용하여 동기화를 수행 마지막 남은 세마포어는 메시지를 보낼때 한명의 사용자만 보낼 수 있도록 critical section을 지키기 위한 세마포어