컴퓨터공학/컴퓨터시스템

컴퓨터시스템 10 - 2 포그라운드와 백그라운드 처리하기

Arkeiyou 2021. 10. 28. 23:40

용어체크

1. 포그라운드 처리

  • 사용자가 입력한 명령이 실행되어 결과가 출력될 때까지 프롬프트가 출력되지 않아서 다른 명령을 입력할 수 없어 기다려야 하는 처리 방법

2. 백그라운드 처리

  • 명령의 입력이 끝나면 결과에 상관없이 바로 다음 프롬프트가 출력되어 다른 명령을 입력할 수 있는 처리 방법

 

학습내용
  • 1. 포그라운드와 백그라운드 개념
  • 2. 작업 전환과 사용자 정보 보기
학습목표
  • 1. 포그라운드와 백그라운드 작업의 개념과 제어 방법을 설명할 수 있다.
  • 2. 작업을 전환하고 현재 사용자 정보와 자신의 로그인 정보를 확인할 수 있다.

 

 

 

1. 포그라운드와 백그라운드 개념

 

 

1) 포그라운드와 백그라운드 이해

 

작업(job)이란?

쉘이 프로세스를 관리하는 단위이다. 유닉스는 각각의 job에 job ID를 부여하여 제어한다(프로세스 : PID, CMD). 유닉스의 작업은 포그라운드와 백그라운드 처리로 구분할 수 있다. 

 

포그라운드(foreground) 처리란?

사용자가 입력한 명령이 실행되어 결과가 출력될때까지 프롬프트가 출력되지 않아서 다른 명령을 입력할 수 없어 기다려야 하는 처리방법이다. 포그라운드 처리로 실행되고 있는 프로세스는 포그라운드 프로세스, 포그라운드 작업이라고 부른다. 보통의 처리방법

 

백그라운도(background) 처리란?

명령의 입력이 끝나면 결과에 상관없이 바로 다음 프롬프트가 출력되어 다른 명령을 입력할 수 있는 처리방법. 여러 프로세스를 동시에 실행시킬 수 있다. 백그라운드 방식으로 처리되는 프로세스를 백그라운드 프로세스, 백그라운드 작업이라고 부른다. 명령의 끝에 &를 붙인다. 

 

백그라운드 처리시 유의사항 : 터미널 화면의 현재 상태와 상관없이 실행 결과와 오류 메시지를 그대로 출력 -> 현재 작업을 하려던 것이 수시로 출력되는 메시지로 인해 방해받는다.

해결방법 : 출력 방향 전환을 하여 실행 결과를 파일로 저장하는 방법을 사용한다.

-$fidn / -name passwd > pw.dat
 : 에러 메시지는 화면에 계속 출력됨
-$find / -name passwd > pw.dat 2>pw.err &

 

 

2) 포그라운드와 백그라운드의 작업 제어하기

 

 

작업 제어

작업 전환, 실행 중지, 작업 종료

 

작업 종료하기

 

명령

ctrl + c : 포그라운드에서 수행중인 작업을 중지한다. 프로그램에서 Ctrl + C 를 무시하도록 설정한 경우는 종료되지 않는다.

kill %n 혹은 PID : 작업 번호가 n 혹은 PID인 작업을 종료 

 

로그아웃 후에도 백그라운드 작업 계속 실행하기 : nohup 명령&

백그라운드 작업을 실행시킨 터미널이 종료되거나 사용자가 로그아웃하면 실행 중이던 백그라운드 작업은 함께 종료된다. 로그아웃한 후에도 백그라운드 작업이 계속 진행되도록 하기 위해서는 nohup 명령을 사용한다. 명령 실행결과 및 오류 메시지는 nohup.out 파일에 자동으로 저장된다.

 

작업 목록 보기 : jobs 명령어

현재 실행중인 백그라운드 작업 목록을 출력해주는 명령어이다. 특정 작업 번호를 지정하면 해당 작업 정보만을 출력하기도 한다.

 

형식

jobs [%작업]

   * % 작업

   %번호 : 해당 번호의 작업 정보를 출력

   %+ 또는 %% : 작업 순서가 +인 작업 정보를 출력

   %-: 작업 순서가 -인 작업 정보를 출력한다.

 

sleep 명령어를 이용하여 백그라운드 작업을 실행

sleep [시간(초단위)]: 지정시간동안 시스템 멈춤

 

 

 

 

 

2. 작업 전환과 사용자 정보 보기

 

 

1) 작업 전환하기

 

작업 전환 명령어 : 작업을 저장하지 않으면 현재 작업에 적용된다.

 

Ctrl + Z 혹은 stop[%작업번호] : 포그라운드 작업을 중지시키고, 백그라운드의 중지된 목록으로 보낸다. 작업을 종료하는 것이 아니라 잠시 중단하는 것이다.

bg [%작업번호] : 현재 작업이나 특정 작업을 백그라운드로 전환시켜 실행한다.

fg [%작업번호] : 현재 작업이나 특정 작업을 포그라운드로 전환시켜 실행한다.

 

 

2) 사용자 정보 보기Cmd Whop'''''''doo dkgkjv am i?

 

 

포그라운드와 백그라운드 처리는 무엇인가요?

포그라운드 처리는 사용자가 입력한 명령이 실행되어 결과가 출력될 때까지 프롬프트가 출력되지 않아서 다른 명령을 입력할 수 없어 기다려야 하는 처리 방법을 의미하고, 백그라운드 처리는 명령의 입력이 끝나면 결과에 상관없이 바로 다음 프롬프트가 출력되어 다른 명령을 입력할 수 있는 처리 방법을 의미합니다.

 

 


Quiz 01유닉스에서 보통 명령을 처리하는 방법은 백그라운드 처리 방식이다.

  • 1 O
  • 2 X

정답 :2

해설 :보통의 명령 처리방식은 포그라운드 처리 방식이다.

 

 

 

Quiz 02다음 중 작업 번호가 지시하는 작업을 일시 정지 시키는 명령은?

  • 1 back
  • 2 fg
  • 3 stop
  • 4 pg

정답 :3

해설 :특정 작업을 일시 정지시키는 명령어는 stop이다. 형식은 stop %작업번호 이다.

 

 

 

Quiz 03user1에서 root 사용자로 전환하고자 할 때 사용하는 명령은?

  • 1 stop
  • 2 users
  • 3 su
  • 4 who

정답 :3

해설 :su 명령을 이용하면 다른 사용자로 전환하여 작업이 가능하다.

※ 정답확인을 클릭해야 출석으로 인정됩니다!

 

 


학습정리

1. 포그라운드와 백그라운드 작업

  • 포그라운드 작업: 사용자가 명령을 입력하면 결과가 출력된 후에 다음 명령을 입력할 수 있는 작업
  • 백그라운드 작업: 명령의 처리와 관계없이 다음 명령 입력 가능한 작업. 명령 마지막에 & 기호 추가

2. 작업 관리 명령

  • jobs: 백그라운드 작업 목록 출력
  • fg [%작업번호]: 해당 작업을 포그라운드로 전환
  • bg [%작업번호]: 해당 작업을 백그라운드로 전환
  • ^Z 또는 stop [%작업번호]: 포그라운드 작업을 잠시 중단
  • kill [%작업번호]: 해당 작업을 종료

3. 사용자 정보보기 명령

  • users: 나의 사용자 명 출력
  • w: 로그인한 사용자의 정보, 시스템 정보, 작업 정보
  • who: 시스템 사용자의 사용자명, 단말기 번호, 로그인한 시간 정보
  • who am i: who 정보 중 자신에 대한 정보 출력
  • whoami: 사용자명 만 출력
  • id: 사용자 명과 uid, 그룹명, gid 정보 출력
  • su : 다른 사용자나 root로 전환

인쇄

아이티평생교육원

Loaded: 0%

Progress: 0%

Current Time0:03

/

Duration Time0:03

Play

 

Mute