일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- App Runner
- 타입스크립트
- 웅진씽크빅
- 해시
- Algorithm
- react-query
- React.js
- BFS
- #프로젝트캠프 #프로젝트캠프후기 #유데미 #스나이퍼팩토리 #웅진씽크빅 #인사이드아웃 #IT개발캠프 #개발자부트캠프 #리액트 #react #부트캠프 #리액트캠프
- react
- typescript
- 자바스크립트
- CS
- 스나이퍼팩토리
- cs #네트워크
- 리액트
- 인사이드아웃
- 네트워크
- 개발자부트캠프
- 알고리즘
- 프로그래머스
- ip
- 스레드
- javascript
- 프로젝트캠프
- IT개발캠프
- 메모리
- 프로세스
- html
- 유데미
- Today
- Total
목록프로세스 (4)
Bin's Blog
글의 시작 오늘 다루는 주제는 지난 시간 멀티프로세싱을 다뤘으니, 간단하게 스레드와 멀티스레딩에 대해서 살펴보고 가려고 한다. 자바스크립트를 처음에 공부했을 때 "자바스크립트는 메인 스레드인 이벤트 루프가 싱글 스레드라서 싱글 스레드 언어라고 부른다."라는 말을 자주 들었다. 그럼 스레드가 무엇인지 더 나아가서 멀티스레딩이 무엇인지 알아보면서 궁금증을 해소해 보자. 스레드 스레드는 프로세스의 실행 가능한 가장 작은 단위이다. 프로세스는 여러 스레드를 가질 수 있다. 코드, 데이터, 스택, 힙을 각각 생성하는 프로세스와는 달리 스레드는 코드, 데이터, 힙은 스레드끼리 서로 공유한다. 그 외의 영역은 각각 생성된다. 멀티스레딩 멀티스레딩은 프로세스 내 작업을 여러 개의 스레드, 멀티스레드로 처리하는 기법이며..
PCB PCB(Process Control Block)는 운영체제에서 프로세스에 대한 메타데이터를 저장한 "데이터"를 말한다. 프로세스 제어 블록이라고도 한다. 프로세스가 생성되면 운영체제는 해당 PCB를 생성한다. 프로그램이 실행되면 프로세스가 생성되고 프로세스 주소 값들에 앞서 설명한 스택, 힙 등의 구조를 기반으로 메모리가 할당된다. 그리고 이 프로세스의 메타데이터들이 PCB에 저장되어 관리된다. 이는 프로세스의 중요한 정보를 포함하고 있기 때문에 일반 사용자가 접근하지 못하도록 커널 스택의 가장 앞부분에서 관리된다. PCB의 구조 PCB는 프로세스 스케줄링 상태, 프로세스 ID 등의 다음과 같은 정보로 이루어져 있다. 프로세스 스케줄링 상태: "준비", "일시중단"등 프로세스가 CPU에 대한 소유..

프로세스의 상태 프로세스의 상태는 여러 가지 상태 값을 갖는다. 생성 상태 생성 상태(create)는 프로스세스가 생성된 상태를 의미하며 fork() 또는 exec() 함수를 통해 생성한다. 이때 PCB가 할당된다. fork() fork()는 부모 프로세스의 주소 공간을 그대로 복사하며, 새로운 자식 프로세스를 생성하는 함수이다. 주소 공간만 복사할 뿐이지 부모 프로세스의 비동기 작업 등을 상속하지는 않는다. exec() exec()은 새롭게 프로세스를 생성하는 함수이다. 대기 상태 대기 상태는 메모리 공간이 충분하면 메모리를 할당받고 아니면 아닌 상태로 대기하고 있으며 CPU 스케줄러로부터 CPU 소유권이 넘어오기를 기다리는 상태이다. 대기 중단 상태 대기 중단 상태는 메모리 부족으로 일시 중단된 상태..
프로세스(process)는 컴퓨터에서 실행되고 있는 프로그램을 말하며 CPU 스케줄링이 대상이 되는 작업이라는 용어와 같은 의미로 쓰인다. 스레드는 프로세스 내 작업의 흐름을 지칭한다. 앞의 그림처럼 프로그램이 메모리에 올라가면 프로세스가 되는 인스턴스화가 일어나고, 이후 운영체제의 CPU 스케줄러에 따라 CPU가 프로세스를 실행된다. 프로세스와 컴파일 과정 프로세스는 프로그램이 메모리에 올라가 인스턴스화된 것을 말한다. 예를 들어 프로그램은 구글 크롬 프로그램과 같은 실행 파일이며, 이를 두 번 클릭하면 구글 크롬 프로세스로 변환되는 것이다. 프로그램을 만드는 과정은 만드는 언어마다 다를 수 있으며 C 언어 기반의 프로그램을 기준으로 설명하면 컴파일러가 컴파일 과정을 통해 컴퓨터가 이해할 수있는 기계어..