-
프로그램 / 프로세스 / 쓰레드네트워크 2023. 3. 15. 13:29
CPU : 컴퓨터 하드웨어에서 연산을 담당하는 놈
프로그램 : 무언가를 실행시키기 위한 파일
프로세스 : 프로그램이 메모리 위에 적재되어있고, CPU를 할당받아 실행중인 상태
CPU는 한번에 하나의 프로세스만 실행할 수 있다. 다만, 컨텍스트 스위칭 속도가 매우 빨라서 우리가 '동시에' 진행된다고 느끼는 것이다.
스위치를 해주는 순서를 정해주는 것을 '스케쥴링'이라고 한다. 운영체제는 준비큐에 있는 프로세스 중 하나의 프로세스를 골라 실행시킨다.
이 스케쥴링은 선점형 / 비선점형으로 나뉜다. 그리고 그는 스케줄링 알고리즘에 따라 또 나뉜다.
멀티 프로세스 : 다수의 CPU가 하나이상의 작업을 동시에 처리하는 것. 하나의 프로세스가 죽더라도 다른 프로세스에 영향을 주지 않아 안정성이 높다.
>> 자식 fork() 개념 : 함수를 호출한 프로세스를 복사하는 기능. 이 때 부모프로세스와 자식프로세스가 나뉘어 실행된다. 포크를 하는건 쉘에서 하나의 명령어를 실행하는 것과 같다.
fork()함수가 성공하면 자식프로세스의 id를 반환, 실패하면 -1반환(사실 잘 모르겠음)
자세한 설명 :
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=joyangel93&logNo=220400967632
https://geekride.com/fork-forking-vs-threading-thread-linux-kernel/
쓰레드 : 프로세스는 CDSH(코드 / 데이터 / 스택 / 힙) 영역으로 나뉘어져있는데, 이 중 스택영역을 할당받은 하나의 작업흐름이라고 보면된다.
프로세스 내에서 실제로 작업을 수행하는 주체다.
멀티 쓰레드 : 하나의 프로세스는 하나이상의 쓰레드를 갖는데, 여러 스레드를 가지는 프로세스를 멀티쓰레드 프로세스라고 부른다. 멀티 프로세스보다 작은 메모리 공간을 차지하고 그렇기에 빠르지만,
하이퍼쓰레드 : 모르겠음반응형'네트워크' 카테고리의 다른 글
why is it a problem to have too many cookies on broswer? Why does it become the cause of 400 error? (0) 2023.07.04 SSH 접속을 위해 확인해봐야할것 (0) 2023.03.22 포워딩과 라우팅의 차이 (0) 2023.03.14 SSL / HTTPS / TLS 에 대하여 (0) 2023.02.27 [챗 GPT 답변]포트번호에 대해서 / About Port numbers (max number, differences, meaning) (0) 2023.02.22