프로세스(Process)란?실행중인 프로그램이라는 뜻으로 프로그램 또는 그 일부를 뜻하기도 하고, 데이터의 입력이나 출력등을 조작하거나 처리하는 것을 말하기도 한다.부모 프로세스(parent process)라는 상위계층과 자식 프로세스(child process)라는 하위계층이 존재한다. 부모 프로세스는 프로그램이나 명령에 의해 시작되며 자식 프로세스는 부모 프로세스에 의해 만들어지는 것을 말한다.하나의 부모 프로세스는 여러개의 자식프로세스를 관리하는데, 여러개의 자식 프로세스가 하나의 CPU에서 동시에 처리되는 것처럼 보이는 것을 멀티 태스킹(multitasking)이라고 한다. 쓰레드(Thread)란?프로세스의 장점을 지니면서도 어느정도 단점을 극복한 '경량화된 프로세스'이다. 말 그대로 프로세스보다는..
사용자가 시스템에 접근하려면 사용자 계정이 반드시 필요하다. 사용자 계정은 시스템 관리자가 만들어주어야 하는 것이므로 관리자는 사용자 계정과 관련된 명령을 잘 알고 있어야 한다. 사용자 계정 관리에는 사용자 계정의 등록과 삭제, 기존에 등록된 계정 관련 정보 수정등의 업무가 포함된다. 이 절에서는 사용자 계정을 관리하는데 필요한 명령을 익힌다.1. 사용자 계정 생성하기사용자 계정을 생성할 때는 useradd나 adduser 명령을 사용한다. 둘 중 어느것을 사용해도 좋다. 여기서는 유닉스나 다른 리눅스 배포판과의 호환성을 고려하여 useradd 명령을 기준으로 설명한다. useradd 명령을 사용할 때 지정하는 옵션은 /etc/passwd 파일에 저장되는 각 항목에 해당한다.useradd기능 사용자 계정..
리눅스는 기본적으로 여러 명이 시스템을 사용하는 다중 사용자 시스템이므로 사용자를 구별하고 사용자에게 적절한 자원을 할당해주는 방법이 필요하다. 리눅스에서는 사용자 계정이 사용자를 구별하는 역할을 한다. 사용자 계정은 사용자가 시스템에 접근할 수 있는 유일한 방법이고, 시스템 관리자의 입장에서도 사용자의 접근 권한을 통제할 수 있는 중요한 수단이다. 따라서 사용자 계정 관리는 시스템 관리자의 주요 업무중 하나이다.사용자 계정관리에는 사용자가 적절한 권한을 가지고 시스템에 접근할 수 있도록 사용자 계정을 새로 만들거나 사용자 정보를 수정하고, 계정 사용 기한 만료 등의 이유로 사용자 계정을 삭제하는 업무 등이 있다. 리눅스에서 사용자 계정과 관련된 파일은 /etc/passwd, /etc/shadow, /e..
리눅스에서 소스를 컴파일하여 실행파일을 생성하는 방법에 대해서 알아보자. 1. C 컴파일러 확인하기사용자가 작성한 프로그램은 시스템이 이해할 수 있는 형태로 변환해야 실행할 수 있다. 시스템이 이해할 수 있는 형태란 기계어를 의미한다. 일반적으로 실행 파일이라 부르는 파일이 기계어로 된 파일이다. 사용자가 사용하는 고급언어(예 : C언어)를 기계어(실행파일)로 변환하는 과정을 컴파일이라 하며, 컴파일을 해주는 소프트웨어를 컴파일러라고 한다. 예를들어 C언어로 작성한 프로그램을 컴파일하려면 C컴파일러가 필요하다.먼저 시스템에 C 컴파일러가 설치되었는지 확인해보자. 리눅스의 C컴파일러는 gcc인데, 설치되지 않았다면 패키지 설치 명령으로 설치하면 된다.확인은 aptitude show gcc 명령을 이용해서 ..
아카이브에 대해서 알아볼텐데 기존에 하던 MFC 프로그래밍에서도 파일 저장및 열기를 하기 위해 자주 등장하던 용어이다.아카이브는 원래 '보관소, 저장소' 라는 뜻이지만 리눅스에서는 '파일을 묶어서 하나로 만든 것' 이란 의미로 사용된다. 파일과 디렉터리를 하나의 아카이브 파일로 만드는 방법과 파일을 압축하는 방법을 살펴본다. 1. 파일 아카이브tar(tape archive)은 원래 여러 파일이나 디렉터리를 묶어서 만든 마그네틱 테이프와 같은 이동식 저장 장치에 보관하기 위해 사용하는 명령이었다. 현재는 다른 시스템과 파일을 주고 받거나, 백업하기 위해 여러 파일이나 디렉터리를 하나의 아카이브 파일로 생성하거나, 기존 아카이브에서 파일을 추출하는데 사용한다. tar 명령의 기본 형식은 다음과 같다.기능 파..
우분투에서 패키지를 설치하는데는 APT 명령을 사용하는 방법, dpkg 명령을 사용하는 방법, aptitude 명령을 사용하는 방법이 있다. 또한 명령을 사용하지 않고 우분투 소프트웨어 센터에서 패키지를 선택하여 설치할 수도 있다.간략하게 APT명령으로 패키지를 설치하는 방법에 대해서만 알아보겠다.APT 에는 여러가지 명령이 있지만 그중 가장 자주쓰이는 apt-get 명령에 대해서 알아보자.apt-get 명령을 사용하면 패키지 저장소를 업데이트 하고 패키지를 설치하거나 제거할 수 있다.기능 패키지를 관리한다.형식 apt-get [옵션] 서브명령옵션 -d : 패키지를 내려받기만 한다. -f : 의존성이 깨진 패키지를 수정하려고 시도한다. -h : 간단한 도움말을 출력한다.서브 명령 update : 패키지 ..
시스템을 사용하다 보면 주기적으로 반복해야 하는 작업이 있다. 예를 들어 매주 백업을 받거나, 매일 아침 시스템의 상태를 자동으로 확인하여 정해진 시간에 관리자에게 메일로 보내는 것 등이다. 이럴 때 작업 예약을 사용하면 잊지않고 필요한 작업을 실행하고 효율적으로 업무를 처리할 수 있다. 정해진 시간에 반복 실행지정 시간이 되면 반복적으로 실행하도록 설정하는 crontab 명령을 알아보자기능 사용자의 crontab 파일을 관리한다.형식 crontab [-u 사용자 ID][옵션][파일 이름]옵션 -e : 사용자의 crontab 파일을 편집한다. -l : crontab 파일의 목록을 출력한다. -r : crontab 파일을 삭제한다. crontab 파일 형식crontab 명령으로 관리하는 파일은 사용자별로 ..
1. 포그라운드 작업과 백그라운드 작업사용자가 터미널에서 작업할 때 보통의 경우 한번에 하나의 프로세스만 실행할 수 있다. 즉, 어떤 명령을 실행하면 명령이 끝날 때까지 기다려야 다시 터미널을 사용할 수 있는 것이다. 그런데 사용자가 어떤 프로세스를 실행하면서 동시에 다른 프로세스를 실행해야 할 때가 있다. 작업제어 도구는 이렇게 한 터미널에서 동시에 여러 프로세스를 실행하고 관리하기 위해 개발되었다.포그라운드 작업터미널에서 작업할 때 일반적으로 사용자가 명령을 입력하면 셸은 사용자가 입력한 명령을 해석하여 실행하고 그 결과를 화면에 출력한다. 그러면 사용자는 화면에 출력된 결과를 보고 다시 명령을 입력하는 대화식으로 작업을 수행한다. 이렇게 사용자가 입력한 명령이 실행되어 결과가 출력될때 까지 기다려야..
여러 프로세스에 시그널 보내기 원하는 프로세스를 찾은 후 가장 흔히 사용하는 프로세스 제어 명령은 kill이다. kill 명령은 프로세스에 특정한 시그널을 보낸다. 데몬에 여러 스레드나 여러 자식 프로세스가 존재한다면 부모 프로세스에 시그널을 보내서 나머지 프로세스로 전달할 수도 있다. 하지만 이와 같은 방식으로 동작하지 않는 데몬과 응용 프로그램도 존재한다. 프로세스를 수작업으로 찾아내어 하나씩 죽이는 방법도 있지만 시간이 걸리고 번거롭다. 그래서 일부 유닉스 계열은 pkill이라는 명령을 제공한다. pkill은 특정한 패턴이나 조건에 만족하는 프로세스 전부에 시그널을 보낸다. 예를 들어 터미널, 프로세스 그룹, 사용자 ID, 그룹 ID를 지정하여 해당하는 프로세스 전부에 시그널을 보낼 수 있다. pk..
2. 특정 프로세스 정보 검색하기전체 프로세스 목록에서 특정 프로세스의 정보만 골라서 확인하기는 불편하다. 특정 프로세스를 바로 검색하려면 ps 명령과 grep 명령을 |(파이프)로 연결하여 이용하거나 pgrep 명령을 이용하는 방법이 있다. ps 명령을 이용해 특정 프로세스 정보 검색하기ps 명령과 grep 명령을 |로 연결하여 특정 프로세스의 정보를 검색할 수 있다.'ps -ef | grep 명령'의 형태로 연결하면 된다. pgrep 명령을 이용해 특정 프로세스 정보 검색하기pgrep 명령은 ps와 grep를 하나로 통합하여 만든 명령이라고 생각하면 된다. pgrep 명령은 기본적으로 인자로 지정한 패턴과 일치하는 프로세스를 찾아 PID를 알려주며, 옵션의 지정에 따라 검색 내용이 다양해진다.pgre..
- Total
- Today
- Yesterday
- Sort
- 쓰레드
- 티그널
- 정렬
- 클래스
- 터미널
- 악보
- 안드로이드
- MFC
- 파일
- 라즈베리파이
- 액터
- 소켓 프로그래밍
- 데이터베이스
- 리눅스
- 유즈케이스
- 파이썬예제
- 파이썬
- C
- C++
- 소켓
- 스레드
- 클라이언트
- 자료구조
- 디렉터리
- UML
- 티라노 시그널
- C/C++
- socket
- 프로세스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |