공유 자원 (Shared Resource) 여러 프로세스가 공동으로 이용하는 변수, 메모리, 파일 등을 말합니다. 공동으로 이용되기에 누가 언제 데이터를 읽거나 쓰느냐에 따라 결과가 달라질 수 있습니다. 경쟁 상태 (Race Condition) 공유 데이터에 대해 여러 프로세스가 동시에 접근, 변경을 시도하는 상황을 말합니다. 데이터의 일관성을 유지하기 위해서 수행되는 프로세스들이 순차적으로 공유자원에 접근해야 합니다. 문제 상황 예시 (은행 입출금 문제) 프로세스 A와 B가 은행 잔고에 동시에 접근해서 둘 다 1000원을 읽었습니다. A는 500원을 입금했고 B는 뒤이어 500원을 출금했다면 잔고는 1000원이 저장돼야 하지만, B가 더 나중에 저장했으므로 500원이 저장됩니다. => 문제 발생 임계 ..
멀티 프로세스와 멀티 스레딩에 대해 알아보고 그 밖에 헷갈리는 개념에 대해서도 정리하였습니다. 멀티 프로세스 하나의 프로그램을 여러 개의 프로세스로 구성하여 각 프로세스가 병렬적으로 작업을 수행하는 것입니다. 장점 서로의 메모리에 침범할 수 없습니다. 여러 자식 프로세스 중 하나에 문제가 발생하여도 다른 프로세스에는 영향이 가지 않아 안정성이 높습니다. 단점 독립된 메모리를 갖고 있기 때문에 작업량이 많아지면(Context Switching이 자주 발생하면) 오버헤드가 발생합니다. IPC가 필요합니다. 멀티 스레드 하나의 프로세스에 여러 스레드로 자원을 공유하며 작업을 나누어 수행하는 것입니다. 장점 스레드 간 데이터를 주고받는 것이 간단해져 스레드 간 통신이 간단합니다. 교환해야 할게 적어서 Conte..
병렬 처리 병렬 처리는 동시에 여러 개의 명령을 처리해 CPU의 성능을 향상하는 것을 말합니다. 대표적인 컴퓨터의 병렬 처리 기법으로는 파이프라인, 슈퍼스칼라 기법이 있습니다. 병렬 처리 고려사항 1. 상호 의존성이 없어야 합니다. - 각 명령이 서로 독립적이고 앞의 결과가 뒤의 명령에 영향을 미치지 않아야 합니다. 2. 각 단계의 시간이 거의 일정해야 합니다. - 각 단계의 시간이 다르다면 병목 현상이 발생합니다. 3. 전체 작업시간(명령어)을 몇 단계로 나눌지 고려해야합니다. - 작업을 N개로 쪼갤 때 N을 병렬 처리의 깊이라고 합니다. - N이 너무 커지면 각 단계마다 작업을 이동하고 불러오는 데 시간이 많이 걸려 오히려 성능이 떨어집니다. 명령어가 실행되는 과정 CPU 내에서 명령어는 제어장치가 ..
1. 버퍼 버퍼란, 속도에 차이가 있는 두 장치 사이에서 그 차이를 완화하는 역할을 합니다. 데이터 읽기 쓰기가 일어날 때마다 하나씩 전송하면 비효율적이기 때문에 일정량의 데이터를 모아서 처리합니다. 2. 스풀 CPU와 I/O 장치가 독립적으로 동작하도록 고안된 소프트웨어적인 버퍼입니다. 대표적인 예는 프린터가 있습니다. (문서 작업, 출력 작업이 독립적으로 동작) 3. 캐시 CPU가 메모리 사이에 위치한 속도가 빠른 장치와 느린 장치에서 속도 차이에 따른 병목 현상을 줄이기 위한 메모리입니다. CPU가 메모리(주기억장치)에서 저장된 데이터를 읽어올 때, 자주 사용하는 데이터를 캐시 메모리에 저장한 뒤, 다음에 이용할 때 주기억장치가 아닌 캐시 메모리에서 먼저 가져오면서 속도를 향상합니다. 메모리에 접근..
프로세스란? 프로그램은 파일이 저장장치에 저장되어 있지만 메모리에는 올라가 있지 않은 정적인 상태를 말합니다. 프로세스의 정의는 실행 중인(메모리에 올라가 있는) 프로그램을 말합니다. 프로세스의 중요한 개념은 두 가지가 있습니다. - 운영체제로부터 자원을 할당받은 작업의 단위(스케줄링의 단위)입니다. (Execution Unit) - 프로세스끼리 서로 침범하지 못합니다. (Protection Domain) 프로세스의 구조 Text Section - 명령어(소스 코드)들이 저장되는 영역 Data Section - 전역 변수나 static 변수의 할당을 위한 영역 Heap Section - 동적으로 생성되는 데이터가 저장되는 영역 Stack Section - 함수 호출, 지역 변수가 저장되는 영역 프로세스의..
- Total
- Today
- Yesterday
- setBackgroundColor
- URLComponents
- ios
- 프로세스
- 멀티프로세스
- 프로세스간통신
- swiftsoup
- webcrawl
- optional
- 스레드
- Xcode
- 쓰레드
- OS
- PHImageRequestOptions
- 개발동아리
- Swift
- RxSwift
- isNetworkAccessAllowed
- 디프만
- rxcocoa
- 부캠
- returnKey
- 스냅킷
- WKUIDelegate
- 슈퍼스칼라
- 운영체제
- sharedmemory
- PHAsset
- 개발대외활동
- cs
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |