본 복습 내용은 아이티뱅크 컴퓨터시스템 강의를 바탕으로합니다.
1. 프로세스의 개념 및 종류
* 프로세스(process)의 정의
: 현재 실행 중인 프로그램
: 프로그램 - 어떤 목적을 달성하기 위해 사용되는 명령어 혹은 유틸리티 집합
: 프로그램 실행 시 메모리(RAM - 주기억장치)에 저장, 이를 프로세스라 함
: 시스템프로세스 - 시스템운영에 필요한 명령 수행
: 사용자프로세스 - 사용자들에 의해 실행
: Foreground 프로세스 - 명령 입력 후 수행종료까지 기다려야 함
: Background 프로세스 - 입력에 관계 없이 실행됨
: 멀티태스킹 (multitasking) - 다수의 프로그램이 background process로 실행 중에, 새로운 프로그램을 foreground process로 실행시킬 수 있음
2. 부모 - 자식 프로세스
: 프로세스에는 부모-자식 관계 O
: 부모 프로세스가 자식 프로세스 생성
: 프로세스 - 고유한 번호 PID (Process Identification Number) 소유
: 부모 프로세스 - 고유한 번호 PPID (Parent Proccess Identification Number)도 소유
: 시스템 부팅 시, 모든 프로세스의 root인 init 프로세스(PID = 1)실행
: init 프로세스가 다른 프로세스들 FORK 로 생성
: 사용자 명령 - 쉘의 자식 프로세스
3. 프로세스 생성
(1) fork
: 메모리를 할당받아 복사본 형태의 새로운 프로세스 실행
: 기존 프로세스는 그대로 실행
: 새롭게 생성된 프로세스도 기존 프로세스와 똑같은 코드
(2) exec
: 기존 프로세스를 새 프로세스로 대체
: 기존 프로세스 메모리에 새 프로세스 코드를 덮어씌움
4. 프로세스 초기화
: 프로그램이 실행되려면 프로그램과 데이터가 메모리에 적재 필요
5. init 프로세스
: 부팅 과정에서 커널이 PID = 0 인 swapper 프로세스 생성
: swapper가 init 프로세스 생성
: init 프로세스가 사용자 환경에 필요한 스크립트 실행해 사용자 환경 구축
: 파일 시스템 구조검사, 마운트, 서버 데몬 띄움, 사용자 로그인 대기, 사용자 위한 쉘 띄움
6. 시그널 (Signal)
: 프로세스 간 통신에 사용
: 시그널 목록 확인
$ kill -l
7. 프로세스 확인
* 프로세스 목록 출력
$ ps [옵션!]
: 현재 실행 중인 프로세스 정보
* 주기적으로 현재 실행 중인 프로세스 정보 출력
$ top
8. Foreground, Background 이해
* 쉘은 프로세스를 job 단위로 처리
* UNIX는 다중 작업 (Multitasking) OS
* Foreground(포그라운드, 전위)와 Background(백그라운드, 후위) 처리 방식으로 작동
* Foreground - 사용자가 입력한 명령을 쉘이 해석하여 실행 결과를 출력할 때까지 기다려야 함
- 예시
$ find / -name passwd
//find 명령 종료 때까지 기다려야 한다
* Background - 여러 프로세스 동시에 실행 가능, 명령 처리 끝나기 전에도 다른 작업 수행 가능함
- 명령 Background 타입 으로 실행하려면 & 추가
$ find / -name passwd > pw.dat & //리다이렉션으로 실행 결과 파일로 저장
* Background 작업 목록 확인
$ jobs [%작업]
* Background -> Foreground전환!!
$ fg [% 작업 번호]
9. 작업종료
* 프로세스는 인터럽트 시그널 받으면 종료
* 포그라운드- Ctrl+C
* 백그라운드- kill명령
* 로그아웃 이후에도 백그라운드 작업 실행
$ nohup [작업 내용]
10. 사용자 전환
* 로그인한 사용자 정보 보기
$ users
* 로그인한 사용자 정보 자세히 출력!
$ who [옵션]
* 본인 정보 체크
$ who am i
* 현재 사용자의 로그인 ID, 그룹 정보 출력!
$ id
* 사용자 전환
$ su [-] [username]
'학점은행제' 카테고리의 다른 글
[컴퓨터시스템]학습복습 - UNIX편집기, 파일 및 디렉토리 권한 (0) | 2021.05.26 |
---|---|
[컴퓨터시스템] 학습복습 - UNIX파일시스템, 명령어, 파일종류들 (0) | 2021.05.24 |
[컴퓨터시스템] 학습복습 - UNIX명령어 구조, 온라인매뉴얼 (0) | 2021.05.24 |
[네트워크] 학습복습 -LAN (0) | 2021.05.24 |
[네트워크] 학습복습 - 통신의 개념, 컴퓨터 네트워크 역사, OSI7계층 (0) | 2021.05.24 |
댓글