본문 바로가기
728x90

Linux/SystemProgramming4

데몬(daemon) 정리. 중지시켜도 되는 서비스 acpid : ACPI(Advanced Configuration and Power interface)방식의 시스템 전력 관리를 위한 데몬 anacron : 시스템이 꺼져있을 경우 수행되지 못한 작업 확인 및 수행 atd : at 작업 스케쥴러 auditd : 리눅스 감시 데몬 /etc/audit autofs: 자동마운트 데몬의 작동을 제어하는 프로그램 avahi-daemon : 네트워크 서비스를 인식하는 멀티캐스트 DNS서비스 Avahi 데몬 avahi-dnsconfd : DNS 재설정 기능을 위한 데몬 bluetooth : 블루투스 장치를 사용하기 위한 데몬 capi : Comman ISDN API conman : 콘솔 관리 지원 서비스. 다수의 콘솔 장치와 동시 접속자에 대한 .. 2016. 10. 1.
쉘(Shell) 프로그램 이 쉘의 main 함수에서는 사용자로부터 입력 받아서 run() 함수를 수행한다. 이때 사용자로부터 입력된 내용을 함수의 인자로 넘겨주는데, run() 함수는 이 입력 내용을 분석한다. 간단히 공백을 토큰으로 분리하는데, tokenize() 함수가 이 역할을 수행한다. 여러 개의 토큰으로 분리가 되면 첫 번째 토큰 값을 기준으로 내장 명령어인지 확인. 만약 쉘의 내장 명령어라면 해당 명령어를 수행, else 해당 프로그램의 수행을 시도. run함수에서 fork 함수를 통해 자식 프로세스가 생성되면 자식 프로세스는 exec 함수로 사용자가 입력한 프로그램을 수행시킨다. 프로세스의 인자를 배열로 넘겨 환경변수의 값으로 변환하여 프로세스의 실행이 가능하도록 execvp()함수를 이용함. 2016. 9. 4.
fork()와 vfork()에 대해서. vfork() 함수는 fork()의 단점인 오버헤드(ex: 프로세스 구조체를 할당받는 시간과 메모리)를 낮춤으로써 고안되었다. vfork()가 도입됐지만 fork()함수 또한 상당히 개선되었다. 가장 주목할만한 점은, 'copy-onwrite'의 도입이다.프로세스의 주소공간의 복사는 ,같은 물리메모리들이 수정될때까지넌지시 허용되어왔다. 이것은 대략 , vfork()가 생기게된 원인에대해는 정당화되지 않는셈이다. 이것은 실제로 vfork()의 기능적인 면에서 시스템의 중요한 부분의 의미론적인 오류이다. 비록 호환성을 위해 아직 까지 vfork()가 존재하는것일지 모르지만, vfork()의 의미에 상관없이 fork()를 사용한다. 결국 fork()와 vfork()를 차이점에대해 어떨때 사용하는것에대해는 의미.. 2016. 8. 29.
프로세스와 쓰레드의 생성과 수행(부제 : 쓰레드와 프로세스의 차이점) 프로세스 생성 예제 이 예제는 전역변수 g와 지역변수 l을 가지고 있으며 fork()함수를 통해 새로운 프로세스를 생성한다. 그 결과, 16196번 pid를 가지는 부모 프로세스가 16197번 pid를 가지는 자식 프로세스를 생성하였음을 알 수 있다. 또한 이 프로그램에서는 자식 프로세스가 전역 변수와 지역 변수를 각각 1씩 증가시키고 있음을 알 수 있다. 반면, 부모 프로세스에서 g와 l변수 값을 출력하면 각각 원래 값인 2와 3이 출력됨을 알 수 있다. 이를 통해, 프로세스가 생성되면 주소공간을 포함하여 이 프로세스를 위한 모든 자원들이 새로이 할당됨을 알 수 있다. 따라서 자식 프로세스의 연산 결과는 자식 프로세스 주소 공간의 변수에만 향을 줄 뿐 프로세스 주소공간의 변수에는 영향이 없으며, 결국 .. 2016. 8. 29.
728x90