티스토리 뷰
안녕하세요. 민군입니다. 오늘은..
Concurrency Programming Guide
Concurrency and Application Design 개요
를 학습차원 번역 및 포스팅합니다. 오역, 내용 지적 환영합니다 ^-^//
▼애플 개발자문서, 동시성 및 어플리케이션설계 내용 출처링크
developer.apple.com
컴퓨팅 초기의 컴퓨터가 동작할 수 있는 단위시간 당 최대 작업량은 CPU의 클록속도에 의해 결정되었습니다. 그러나 기술의 진보, 프로세서 설계가 보다 소형화되면서 생긴 열과 그 외 물리적 제약 등이 최대클록과 프로세서의 스피드를 제한하기 시작했습니다. 그렇게 되면서 칩 제조자들은 그들의 칩의 성능을 올릴 수 있는 다른 방법들을 찾았습니다. 그들이 찾은 해결책은 각각의 칩 마다 프로세서의 수를 증가시키는 것이었습니다.
코어의 수를 늘림에따라, 하나의 칩은 CPU스피드나 칩크기, 열의 특성을 바꿀필요 없이 초당 더 많은 지시들을 실행할 수 있었습니다. 유일한 문제는 “어떻게 여분 코어의 이점을 활용할 수 있을까” 였습니다.
다수 코어를 통한 이점을 취하기위해, 컴퓨터는 동시에 다수의 일을 처리할 수 있는 소프트웨어가 필요했습니다. 요즘의 멀티테스킹 작동시스템(OS X, iOS 등)은 100개, 그 이상의 프로그램을 주어진 시간 내에 돌릴 수 있어야 합니다. 그렇기때문에 각각의 프로그램을 다른 코어에서도 예약할 수 있도록 해야만 합니다. 그러나 이들 중 대부분의 프로그램은 시스템 데몬이거나 매우 작은 실처리 시간을 소비하는 백그라운드 어플리케이션입니다. 대신 정말로 필요한 것은 개별적인 어플리케이션을 위해 여분의 코어들을 더욱 효율적으로 활용하는 방법입니다.
어플리케이션을 위해 다수의 코어들을 사용하는 전통적인 방법은 바로 다수의 멀티스레드를 만드는 것이었습니다. 코어의 수가 증가함에따라 스레드를 늘리는 방법은 문제가 생겼습니다. 그중 가장 큰 문제는 스레드가 임의의 수에 따른 코어에 따라 제대로 확장되지 않는 문제였습니다. 프로그램과 코어를 잘 작동할 수 있는 만큼의 많은 스레드를 생성할 수 없었습니다. 당신이 알아야 하는 것은 효율적으로 사용될 수 있는 코어의 수인데 이는 어플리케이션이 자체적으로 계산하기 힘든 일입니다.
당신이 코어의 수를 적절하게 관리했을지라도, 여전히 많은 스레드와 이들을 효율적으로 프로그래밍하고 / 이들을 효율적으로 동작시키고 / 이들이 서로 방해받지않도록 지켜줘야하는 문제가 존재합니다.
결국 문제를 요약하자면, 어플리케이션이 다양한 컴퓨터코어의 이점을 얻을 수 있도록 하는 방법이 필요합니다. 단일 어플리케이션에 의해 구동되는 작업량 또한 변화하는 시스템 조건을 수용할 수 있도록 동적으로 확장될 수 있어야 합니다. 그리고 그 해결책은 코어의 이점을 얻을 수 있는 만큼의 필요작업량을 늘리지 않을정도로 충분히 완전해야합니다.
좋은 소식은 Apple의 동작시스템은 이러한 문제점들의 해결책을 제공합니다. 그리고 이번 챕터에서는 이런 해결책들을 구성해보고, 이들을 당신의 코드에 적용해보는 설계변경 기술을 살펴보도록 합니다.
* 개발자문서 용어 뜻
- Tweak 시스템의 소수변경: 기능의 향상이나 선택적 성과를 보이는 조정.
- Comprise ~을 구성하다.
- Thermal 열(온도)의
- Settle on ~을 해결하다.
▼ 개발자 문서 이어서 보기 :)
iOS 비동기처리기술 GCD, OperationQueue 소개
Concurrency Programming Guide ▶︎ The Move Away from Threads 의 내용을 학습차원에서 번역했습니다. 오역, 지적사항 댓글 환영합니다 ^-^ ♣︎ 스레드로부터 떠나라 The Move Away from Threads 비록..
0urtrees.tistory.com
'iOS 개발 > 개발자문서 정보' 카테고리의 다른 글
iOS 테이블뷰 행,섹션 관리 UITableViewDataSource 개요 (0) | 2019.08.13 |
---|---|
애플 비동기 GCD기능, DispatchSource 문서개요읽기 (0) | 2019.06.20 |
애플 비동기처리 GCD기능, DispatchQueue 문서읽기 (0) | 2019.06.15 |
iOS 비동기처리기술 GCD, OperationQueue 소개 (0) | 2019.06.11 |
동시성프로그래밍 애플개발자문서 개요 읽어보기 (0) | 2019.06.09 |
- Total
- Today
- Yesterday
- swift string
- swift
- 김프매매
- swift문제
- ios
- 부스트코스
- Protocol
- uikit
- Swift 알고리즘
- 스위프트
- 프로그래머스
- swift 문자열
- publisher
- CoreML
- 알고리즘
- SwiftUI
- 백준swift
- swift 기초
- 프로그래머스swift
- 알고리즘문제
- swift언어
- createML
- 백준알고리즘
- 개발자문서
- 자연어처리
- swift reduce
- swift알고리즘
- 컬렉션
- 프로토콜
- Collection
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |