일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- SQL
- join
- groupby
- doitandroid
- CS
- 혼공챌린지
- 우아한테크코스
- 혼공단
- 우테코
- Til
- 정보처리기사
- 프로그래머스
- 카카오코테
- 안드로이드
- Android
- navermap
- Kotlin
- select
- 코테
- 정처기
- 인프런
- 코딩
- 코딩테스트
- 안드로이드스튜디오
- java
- 코틀린
- 혼공파
- MySQL
- 스터디
- 자바
- Today
- Total
목록운영체제 (3)
Welcome! Everything is fine.
동시성과 병렬성 멀티 프로세스와 멀티 스레드 개념을 잘 이해하려면 동시성과 병렬성에 대해 알아야 한다. 동시성(concurrency) : 하나의 코어(싱글 코어)에서 여러 작업을 번갈아 가면서 처리하는 방식 CPU는 한 번에 하나의 작업만 처리할 수 있어서 여러 작업을 돌아가며 처리 → Context Switching Context Switching의 비용은 프로세스 > 스레드이다. 스레드는 stack 영역을 제외한 모든 영역을 공유하기 때문! 병렬성(parallelism) : CPU가 여러 개(멀티코어) 있어 각 CPU에서 각 작업을 동시에 처리하는 방식 멀티 프로세스 응용 프로그램 하나를 여러 프로세스로 구성하는 것을 의미 장점 : 한 프로세스가 죽어도 다른 프로세스에 영향을 주지 않아 안정적 단점 ..
동기(Synchronous) '동시에 일어나는' → 요청과 결과가 동시에 일어남. 코드가 순차적으로 실행되며, 한 작업이 시작되면 그 작업이 완료될 때까지 다음 작업이 기다리게 된다. 간단하고 직관적으로 코드 작성이 가능하지만, 결과가 나올 때까지 무작정 대기해야한다. 비동기(Asynchronous) '동시에 일어나지 않는' → 요청과 결과가 동시에 일어나지 않음. 코드가 순차적으로 일어나지 않으며, 한 작업이 완료될 때까지 기다리지 않고 다음 작업을 시작한다. 상대적으로 코드 설계 및 이해가 어렵지만 태스크가 실행 중이어도 그 시간동안 다른 작업이 가능하다. 동기와 비동기의 차이
프로세스(Process)란? 프로세스란 실행중에 있는 프로그램을 의미하며, 메모리에 적재되어 CPU의 할당을 받을 수 있는 것을 말한다. 프로세스는 최소 하나의 스레드를 가진다. 프로그램이 실행되면 메모리가 할당되고, 할당된 메모리 공간으로 바이너리 코드가 올라가면 그것을 프로세스라고 부른다. 프로세스마다 고유한 가상 메모리 공간 제공하는 이 공간은 다음과 같이 4개로 나눌 수 있다. code 작성한 코드가 저장되는 공간 data 코드에서 전역변수, 정적변수, 상수 등 저장 heap 코드에서 동적으로 생성되는 데이터 구조나 객체들을 저장 stack 작성한 함수에서 지역변수, 매개변수, return 주소 등을 저장 스레드(Thread)란? 프로세스의 실행단위로, 프로세스 내의 공유된 자원(코드, 데이터, ..