2021. 3. 7. 00:50ㆍComputer(인강)/시스템 프로그래밍
안녕하세요 bannavi입니다^ㅅ^
오늘은 foreground와 background에 대해서 배워보도록 할거에요!
바로 시작하도록 하겠습니다
프로세스 vs 바이너리
- 코드 이미지 또는 바이너리: 실행파일
- 실행 중인 프로그램: 프로세스
1) 가상 메모리 및 물리 메모리 정보
2) 시스템 리소스 관련 정보
3) 스케쥴링 단위
리눅스는 다양한 프로세스 실행 환경
- 리눅스는 기본적으로 다양한 프로세스가 실행됨
- 유닉스 철학: 여러 프로그램이 서로 유기적으로 각자의 일을 수행하면서 전체 시스템이 동작하도록 하는 모델
foreground process / background process
foreground process:
쉘(shell)에서 해당 프로세스 실행을 명령한 후,
해당 프로세스 수행 종료까지 사용자가 다른 입력을 하지 못하는 프로세스
background process:
사용자 입력과 상관없이 실행되는 프로세스
- 쉘(shell)에서 해당 프로세스 실행시, 맨 뒤에 &를 붙여줌
- 사용 예
gcc는 gnu c컴파일러입니다
여러분들은 아마 설치할거니? y/n 이런게 많이 뜰겁니다 과감히 Y해주시고요
테스트를 하기 위해서 무한 루프를 만들어보려고 합니다.
i 누르시고 (insert) 아래와 같이 입력해주세요
:wq로 저장을 하고요
이제 loop라는 실행파일이 생겼네요
실행파일이 만들어졌다면 아래와 같이 입력해봅니다
./loop
현재 디렉토리에서 실행파일을 실행하겠다는 의미입니다
자 그럼 loop파일이 계속 실행이 될거에요
원래 아래에 명령어를 적어도 안보이는데.. 리눅스가 이럴떈 빠릿빠릿하네요
자 여기서 ctrl + c를 눌러주면 멈춥니다.
하하.. 이걸 왜 했냐면요.
해당 프로세스 실행을 명령한 후에 해당 프로세스 수행 종료까지 사용자가 다른 입력을 하지 못한다 라는걸
이 foreground process라고 한다 라는걸 예시로 보여드리고 싶었는데
왜 명령어가 입력되는건지^ㅅ^..........난감..ㅠ
우선 foreground의 뜻은 그렇답니다.. 프로세스 수행 종료까지는 사용자가 다른 입력을 하지 못한다!!!!
자 다시 background process를 봐볼게요
원래는 ./loop만 하면 멈췄었죠? 근데 ? 지금은 안멈추네요
이렇게 ./loop가 실행되고 있는 와중에도 ls -al 명령을 실행할 수 있습니다.
아하... 이런게 바로 background process 라는거군요!
'Computer(인강) > 시스템 프로그래밍' 카테고리의 다른 글
리눅스 파일 시스템 (0) | 2021.03.07 |
---|---|
프로세스 관리 및 제어 (0) | 2021.03.07 |
리다이렉션과 파이프 (0) | 2021.03.06 |
파일 및 권한 관리 - 2 (0) | 2021.03.06 |
파일 및 권한 관리 - 1 (0) | 2021.03.06 |