협업을 하다보면 다른 분들의 branch를 로컬(내 작업 공간)으로 가져와서 코드를 봐야할 때가 있습니다! 이 때 마다 검색을 하는데 찾기가 귀찮아져서... 제가 정리해봤습니다 😅 1. 원격 브랜치 업데이트 git remote update 간혹 update가 안되고 원격 브랜치를 조회하게 되면 찾는 브랜치가 없을 수 있기 때문에 원격 브랜치를 업데이트 해줍니다 2. 원격 브랜치 목록 조회하기 git branch -r 원격 브랜치의 목록을 조회합니다. 목록 중 원하는 브랜치를 봐둡니다. 3. 원격 브랜치를 로컬 브랜치에 가져오기 git checkout -t [원격 브랜치] 원격 브랜치를 로컬 브랜치로 들고 오게 되고 이름도 원격 브랜치 이름과 같게 됩니다. 그 후 checkout 까지 깔끔하게 됩니다. ..
IPC (Inter-Process Communication) 프로세스는 독립적인 메모리 공간을 갖고 다른 프로세스에 의해 침범되지 못하기 때문에 프로세스 간 통신을 위해서 별도의 메커니즘이 필요합니다. (IPC) 프로세스들 사이에 서로 데이터를 주고받는 행위 또는 그에 대한 방법이나 경로를 뜻합니다. Kernel에서 IPC를 위한 도구를 제공합니다. (System Call의 형태로 프로세스에 제공됨) IPC가 필요한 이유 서로 다른 프로세스들이 협력해서 동작하는 프로세스 협력 모델을 만들기 위해서는 데이터를 주고받아야 하는데 이를 위해서 필요합니다. IPC의 두 가지 모델 1. Shared Memory (공유 메모리) 공유 메모리는 서로 다른 프로세스가 메모리 일정 영역을 공유하는 방식으로 공유하는 영역..
CPU 스케줄링 메모리에 있는 여러 프로세스에게 어떤 식으로 CPU time을 할당을 해줄 것인지 정하는 것입니다. 멀티 프로그래밍을 기반으로 합니다. CPU 사용률, 처리량을 최대로 하는 것이 CPU 스케줄링의 목적입니다. CPU 스케줄링의 종류 CPU 스케줄링이 동작하는 시점은 4가지가 있습니다. 1. Running -> Waiting 2. Running -> Ready 3. 프로세스 종료 4. Ready -> Running 비선점형 스케줄링 1과 3의 상황에서만 동작하는 스케줄링 기법입니다. 한 작업이 CPU time을 할당받으면 그 작업이 끝날 때까지 운영체제가 중단하거나 다른 작업을 할당할 수 없습니다. 선점형 스케줄링 그 외의 다른 스케줄링 기법입니다. 운영체제가 중간에 실행중인 작업을 중단하..
멀티 프로세스와 멀티 스레딩에 대해 알아보고 그 밖에 헷갈리는 개념에 대해서도 정리하였습니다. 멀티 프로세스 하나의 프로그램을 여러 개의 프로세스로 구성하여 각 프로세스가 병렬적으로 작업을 수행하는 것입니다. 장점 서로의 메모리에 침범할 수 없습니다. 여러 자식 프로세스 중 하나에 문제가 발생하여도 다른 프로세스에는 영향이 가지 않아 안정성이 높습니다. 단점 독립된 메모리를 갖고 있기 때문에 작업량이 많아지면(Context Switching이 자주 발생하면) 오버헤드가 발생합니다. IPC가 필요합니다. 멀티 스레드 하나의 프로세스에 여러 스레드로 자원을 공유하며 작업을 나누어 수행하는 것입니다. 장점 스레드 간 데이터를 주고받는 것이 간단해져 스레드 간 통신이 간단합니다. 교환해야 할게 적어서 Conte..
PCB (Process Control Block) 운영체제가 프로세스를 제어하기 위해 정보를 저장해 놓는 곳으로, 프로세스의 상태 정보를 저장하는구조체입니다. 프로세스의 상태 관리와 문맥 교환(Context Switching)을 위해서 필요합니다. PCB는 운영체제가 프로세스를 표현한 것입니다. 프로세스가 생성될 때마다 고유의 PCB 가 생성되며, 프로세스가 완료되면 PCB는 제거됩니다. PCB에 저장된 요소 Process ID : 프로세스의 고유 ID Process State : 프로세스의 상태 (Create, Ready, Running 등등) Program Counter : 프로세스를 위해 실행될 다음 명령어의 주소 Register : Accumulator, General Register 등을 포함..
병렬 처리 병렬 처리는 동시에 여러 개의 명령을 처리해 CPU의 성능을 향상하는 것을 말합니다. 대표적인 컴퓨터의 병렬 처리 기법으로는 파이프라인, 슈퍼스칼라 기법이 있습니다. 병렬 처리 고려사항 1. 상호 의존성이 없어야 합니다. - 각 명령이 서로 독립적이고 앞의 결과가 뒤의 명령에 영향을 미치지 않아야 합니다. 2. 각 단계의 시간이 거의 일정해야 합니다. - 각 단계의 시간이 다르다면 병목 현상이 발생합니다. 3. 전체 작업시간(명령어)을 몇 단계로 나눌지 고려해야합니다. - 작업을 N개로 쪼갤 때 N을 병렬 처리의 깊이라고 합니다. - N이 너무 커지면 각 단계마다 작업을 이동하고 불러오는 데 시간이 많이 걸려 오히려 성능이 떨어집니다. 명령어가 실행되는 과정 CPU 내에서 명령어는 제어장치가 ..
- Total
- Today
- Yesterday
- 개발동아리
- 디프만
- sharedmemory
- OS
- RxSwift
- 부캠
- Xcode
- 프로세스
- 쓰레드
- 슈퍼스칼라
- WKUIDelegate
- PHAsset
- 운영체제
- Swift
- URLComponents
- 개발대외활동
- cs
- returnKey
- webcrawl
- isNetworkAccessAllowed
- swiftsoup
- 스냅킷
- PHImageRequestOptions
- optional
- 멀티프로세스
- 스레드
- ios
- rxcocoa
- 프로세스간통신
- setBackgroundColor
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |