본문 바로가기

반응형

개발/Linux

프로세스와 신호 - 프로세스 일정 관리 프로세스 일정 관리- ps 출력화면 에서 ps 명령 자체에 대한 줄 확인프로세스 3577 이 실행상태 (R) 이며 ps ax 라는 명령어로 실행되었음을 알 수 있다. R은 실행 가능한 상태이며 반드시 실행 되고 있는 상태는 아니다. -> http://bipim.tistory.com/entry/%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EC%99%80-%EC%8B%A0%ED%98%B8-%EC%8B%9C%EC%8A%A4%ED%85%9C-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EB%93%A4 위에 참고 - 프로세스들은 시간 조각이 차례로 부여디며 각 프로세스는 자신에 주어진 시간 조각 동안만 실제로 실행된다. 이 시간 조각이 짧아 여러 프로세스들이 동시에 실행.. 더보기
프로세스와 신호 - 시스템 프로세스들 시스템 프로세스들- 'ps ax '에서 나오는 프로세스를 확인 하기 STAT STAT 부호 설명 S 수면중(sleeping). 일반적으로 프로세스가 신호나 사용자 입력 완성 같은 어떤 사건을 기다리고 있는 것 R 실행중(running). 실행가능(runnable) 실행 대기열에 포함되어 있으며 실행되고 있거나 실행될 예정인 프로세스를 뜻한다. D 가로챌 수 없는 수면(대기). 일반적으로 입력이나 출력이 완료되길 기다리고 있음을 뜻함 T 중지됨. 일반적으로 셸 작업 제어에 의해 중지되었거나 디버거의 제어 하에 있는 프로세스를 뜻함 Z 소멸된 프로세스, 소위 "좀비" 프로세스 N 저순위(low priority) 태스크, 소위 "예의바른(nice)" 프로세스 W 페이징이 진행 중임 (리눅스 커널 2.6 이후에.. 더보기
프로세스와 신호 - 프로세스 구조 / 테이블 프로세스 구조 ps -ef -e : 모든 프로세스 -f : 프로세스 들의 완전한 정보 UID : 실행한 사용자 PID(Process Identifier) : 프로세스 식별자, 2~32768 까지 순차적으로 부여됨. 최대 값을 넘기면 2부터 다시 시작 / 1은 init프로세스에 쓰인다. tty : 프로세스가 어느 터미널에서 실행 되었는지time : 프로세스가 소비한 CPU 시간CMD : 프로세스를 시작하는데 쓰인 명령줄 - 프로세스는 프로그램코드를 담고 있는 메모리 영역에 자료를 기록하지 못하고, 코드들은 읽기 전용모드로 메모리에 적재된다. 수정은 할 수 없으나 여러 프로세스에 의해 공유가 될 수 가 있다. 이러한 점 덕분에 여러 사용자가 같은 프로그램을 실행 할 수 있다.- 시스템 라이브러리도 같은 경우.. 더보기
프로세스와 신호 프로세스와 신호는 리눅스와 모든 UNIX류 컴퓨터에서 일어나는 거의 모든 활동을 제어한다. 그렇기 때문에 프로세스 관리 방식에 대한 이해는 시스템프로그래머 응용프로그래머 시스템 관리자에게 크게 도움이 된다. 프로세스란 무엇인가?- 하나 이상의 스레드들과 그 스레드들에 필요한 시스템 자원들을 퐘하는 하나의 주소 공간- 실행중인 하나의 프로그램으로 간주 할 수 도 있다.- 리눅스는 다중 사용자 시스템인 만큼, 동시에 여러 명의 사용자들이 시스템에 접근할 수 있다. 각 사용자는 동시에 여러 개의 프로그램들을 실행할 수 있으며, 같은 프로그램의 여러 인스턴스들을 실행 할 수도 있다. 시스템 자체도 시스템 자원을 관리하고 사용자 접근을 제어하기 위해 여러 개의 프로그램들을 실행한다.- 실행 중인 프고르매은 프로그.. 더보기
리눅스 환경 - 로그 로그 - 여러 시스템 프로그램들은 콘솔이나 로그 파일로 로그 메시지들을 기록한다. 일반적으로 이 메시지들은 오류나 경고, 또는 시스템의 상태에 대한 좀 더 일반적인 정보를 담는다. 예를 들어 su 프로그램은 사용자가 슈퍼사용자 특권을 얻으려 했으나 실패 했다는 로그를 남긴다. - 이러한 로그들은 /usr/adm이나 /var/log 디렉터리에 저장된다, 전형적인 리눅스 설치본의 경우 /var/log/messages에는 모든 시스템 메시지들이, /var/log/mail에는 메일 시스템이 기록한 메시지들이, /var/log/debug에는 디버그 메시지들이 저장된다. 이러한 로그들에 대한 설정은 /etc/syslog.conf 파일이나 /etc/syslog-ng/syslog-ng.conf파일에서 변경할 수 있다... 더보기
리눅스 환경 - 프로그램 인수 프로그램 인수 int main(int argc, char *argv[]) argc : 프로그램에 주어진 인수의 갯수argv : 인수들 자체를 나타내는 문자열들의 배열 myprog left right 'and center' -> 이렇게 myprog프로그램에 인수를 넣어 실행하면? argc : 4argv : {" myprog", "left", "right", "and center"} 이렇게 전달 된다. 이러한 명령줄 인수들은 프로그램에 정보를 전달하는 데 매우 유용하고 수많은 유틸리티 프로그램들도 이용한다. 예)sort -f filetar cvfB /tmp/file.tar 1024 등등 프로그램 인수 실습 args.c 실행 결과 더보기
자료 관리 - 메모리 관리 메모리 관리 - Unix는 메모리 관리에 아주 깔끔한 접근수단을 가지고 있었고, linux 도 역시 그 장점을 물려 받았다. 몇몇 임베디드 응용프로그램을 제외한 리눅스 응용프로그램들은 결코 물리적 메모리에 직접 접근하지 못한다. 응용프로그램의 관점에서 마치 자신이 물리적 메모리에 접근하는 것 처럼 보일 뿐 리눅스에 의해 제어되고 있다.- 리눅스를 응용프로그램이 방대한 메모리 공간에 투명한 방식으로 적접 접근할 수 있게 한다.또한 한 프로그램이 다른 프로그램의 메모리 공간에 접근하지 못하게 하는 보호장치가 있다. 응용프로그램이 물리적 메모리 용량보다 더 큰 메모리 공간에 접근할 수 있도록 한다. 간단한 메모리 관리 #include void *malloc(size_t size); 예제 - malloc를 이용.. 더보기
파일다루기 - 파일 디렉터리 접근 권한 관리 파일 디렉터리 접근 권한 관리 - chmod 시스템 호출 chmod는 파일이나 디렉터리의 접근 권한을 변경하는데 쓰인다. 맨앞에 d는 디렉토리인지 파일인지 알 수 있다. d라고 쓰여 있는 것은 디렉토리, 그 위치에 -로 쓰여있는 것은 파일이다. 두번째부터 rwxr-xr-x 이런 방식으로 써있는 문구들이 있다.이 문구들이 바로 접근 권한을 알려주는 문구들이다. 앞에서 부터 3글자 씩 나누어 user/group/다른user 이렇게 나누어 볼 수 있다. r은 read, w는 write, x는 execute 을 나타낸다. 예를 들어 맨 아래줄인 vmware-install.pl의 접근 권한을 해석해보면-rwxr-xr-x- : 파일rwx : 현재 user에서 읽고, 쓰고, 실행이 가능r-x : 현재 user gro.. 더보기

반응형