일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- ecole42
- gnl
- 42
- 지베르니 계절 추천
- 굿노트 스티커
- ft_printf
- 서울42
- 에꼴42
- 42 libft
- 와인 고르기
- 지베르니 여름
- get next line
- pipex 42
- str함수
- 지베르니
- 지베르니 가을
- get_next_line
- printf
- 42 pipex
- pipex
- 알고리즘 기초
- so_long
- 42 so_long
- 파리 피크닉
- 와인선별방법
- push swap
- libft
- 포르투갈 여행
- 이지젯
- push swap 설명
- Today
- Total
뇌 마음 반반저장소
[42_pipex] 탐구2. 프로세스의 과정 쉽게 알아보기 본문
그러면 나머지 함수를 차근차근 살펴보기 전에 운영체제에 대한 구조를 탐구해 봐야 한다. 저번 포스팅에서 입출력에 대한 구조를 탐구해 보았다. 그렇다면 프로그램이 실행되면서 컴퓨터 안에서 어떤 일들이 일어나서 출력이 이루어지는지 알아보자.
프로세스
프로세스, process
명사1.일의 과정이나 공정(工程).
그렇다. 프로세스는 일의 과정이다. 컴퓨터 언어에서는 일을 처리하는 과정을 뜻한다. 우리는 프로그램이라는 도구를 가지고 실행을 시키면 프로세스라는 과정, 즉 실행이 진행된다! 지금 내 컴퓨터에 무슨 일들이 실행되고 있는지 보려면 ctrl + shift + esc를 눌러보자! 😏
만약에 우리가 크롬 내에서 1.유튜브를 보면서 2.블로그에 글을 쓰고 동시에 3.사진을 다운받는다고 가정해 보자. 그러면 하나의 프로세스(작업)에서 아래와 같이 3개의 일이 동시에 돌아갈 것이다. 이렇게 여러 가지의 작업 갈래가 생기는 것을 스레드 (thread)라고 부른다.
사실 프로그램은 동시에 돌아가는게 아니라 순차적으로 프로세스 스케줄링에 따라 실행된다! 엄청나게 빠르게 번갈아가면서 실행해 주기 때문에 우리가 보기에는 동시에 돌아가는 것처럼 느껴진다. (context switching)
프로세스는 여러 단계를 거쳐 출력되는데 아래와 같이 비쥬얼로 풀어보았다.
이제 왜 많은 프로그램과 창을 띄워놓고 컴퓨터를 하면 느려지는지 이해해 봤다(?)... ㅎㅎㅎ 메모리가 모두 할당이 되기 때문에 자꾸 쪼개져서 느린 것! (언제나 경제적으로 메모리를 사용하자구)
그렇다면 여러 가지 프로세스, 위의 예처럼 프로세스A, 프로세스B, 프로세스C를 한꺼번에 처리한다면? 바로 프로세스 스케줄링에 따라서 순서와 시간이 할당된다! 아래의 사이트에 여러가지 스케줄링 방식이 설명되어 있다. 👇
'42 > pipex' 카테고리의 다른 글
[42_pipex] 함수1. pipe, fork, wait, waitpid 자세한 설명 (0) | 2023.01.07 |
---|---|
[42_pipex] 탐구4. inode, 파일권한(chmod), 링크파일(하드, 심볼릭) 쉽게 알아보기 (0) | 2023.01.07 |
[42_pipex] 탐구3. 부모·자식 프로세스 개념 쉽게 알아보기 (0) | 2023.01.07 |
[42_pipex] 탐구1. pipex 구조 자세히 살펴보기 및 예제 (0) | 2023.01.05 |
[42_pipex] 시작하며 (0) | 2023.01.04 |