반응형
토픽 | 키워드 | 두음신공 | 주요 내용 |
스레드(Thread) |
Lightweight Process
|
(정의) 멀티 프로세싱에서 문맥교환에 의한 CPU 효율 저하를 해결하기 위한 Lightweight Process, CPU 작업의 기본 단위, 프로세스의 명령 실행 단위
(특징) 자원 공유, 동기화 이슈(사용자모드 : 임계영역, 스핀락 / 커널모드 : 세마포어로 해결), 병렬성, 독립적 스케줄링 (멀티 스레드) 각 스레드가 Heap/Data영역/Code 공유, 별도 레지스터/스택, Main 스레드에서 Worker 스레드 생성(create) (종류) 사용자 스레드(응용 프로그램이 관리), 커널 스레드 (이용분야) 분산 시스템, 웹 서버, 미들웨어 * 프로그램을 다수 프로세스로 나누어 처리하는 멀티 프로세싱 환경에서 문맥교환에 의한 성능 감소, CPU 효율 저하 발생 * 프로세스를 다수의 스레드로 나누고 스레드간 힙/데이터 영역을 공유하여 빠른 데이터 교환 및 문맥교환이 가능해짐 |
|
IPC(Inter Process Communication) |
공유 메모리, 메시지(PIPE, named PIPE, 메시지 큐)
|
(정의) 분산이나 멀티태스킹 환경에서 프로세스 간에 정보를 주고 받는 행위, 방법
(유형) . 공유 메모리 이용 : 커널 의존성 낮음, 공간 제한, IPC 중 가장 빠름 . 메시지 교환 : 커널 활용, 시스템 콜 오버헤드, 익명 PIPE(1개 반이중, 2개 전이중), named PIPE(파일), 메시지 큐(고정 크기 메시지) |
|
문맥교환(Contect Switching)
|
(정의) CPU 스케줄링에 의해 CPU의 제어가 프로세스간 옮겨지는 교환 과정
(발생원인) 클럭 인터럽트(할당 시간 소진), 입출력 인터럽트, 시스템 콜, 트랩, 메모리 폴트 (오버헤드) 시간적 오버헤드 존재(PCB 저장, 다음 프로세스 선택, CPU 레지스터 값을 다음 PCB로 수정) → 스레드/다중 레지스터 사용, 다중 프로그래밍 레벨 조절 |
||
경쟁조건(Race Condition) |
수행 순서에 따른 결과값 영향
|
(정의) 프로세스들 간 동일 자원 획득을 위한 경쟁 상황에서 프로세스 수행 순서 등으로 인해 결과값이 영향을 받는 상태
(해결 방안) 상호배제(데커, 피터슨 알고리즘), 세마포어, IPC, Test & Set 명령, SWAP 명령 |
|
교착상태(Deadlock)
|
상점비환, 예회탐복 |
(정의) 두개 이상의 프로세스가 상대 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 상태
(발생 조건) 상호배제(Mutlal Exclusion, 배타적 자원 점유), 점유와 대기(Block and Wait), 비선점, 환형대기(Circuilar Wait, 원형을 이루며 서로 요청) (해결 방안) 예방(4개 조건 부정), 회피(은행가 알고리즘, 발생 조건 제거), 탐지, 회복(순서대로 프로세스 kill) |
|
은행가 알고리즘 | Safe, Unsafe |
(정의) 프로세스가 자원을 요구할 때, 할당 후에도 안정상태(safe,unsafe)로 남아있는지 검사하여 교착상태를 회피하는 기법
(동작) 각 프로세스는 최대 자원 사용량 미리 명시 → 자원 요구 → 안정 상태 검사 → 할당 또는 할당 거부(자원 해제 대기) (한계) 대화식 시스템에서 활용 불가, 자원 활용도 떨어짐(항상 최악의 상태 가정), 오버헤드 발생, 복잡한 작업은 무한대기 가능 (자료구조) Available, Max, Allocation, Needs, Request |
|
Wait-die, Wound-wait기법 |
고참/신참 프로세스, 타임스탬프
|
(정의) 타임스탬프 기법을 이용한 교착상태 회피 방법
(동작) . Wait-die : 고참 프로세스(older)는 기다림(wait), 신참 프로세스(younger)는 철회(die), 타임스탬프가 낮으면 older . Wound-wait : 고참 프로세스는 선점, 신참 프로세스는 기다림(wait) |
|
자원할당 그래프 | 교착상태 탐지 |
(정의) 교착상태 탐지를 위해 방향성 그래프를 이용하여 자원 할당 사항과 요구 사항을 표현하는 기법, G=(V,E)
|
|
상호배제(Mutual Exclusion, 뮤텍스)
|
소세데피램모, 하인TS |
(정의) 특정 프로세스가 공유 자원을 사용할 경우, 다른 프로세스가 해당 공유 자원을 사용하지 못하게 제어하는 기법
(구현 방법) . SW적 : 데커 알고리즘(최초, boolean flag), 피터슨 알고리즘, 램포트 알고리즘(번호 부여) → 복잡, 대기 증가 . HW적 : 인터럽트 사용 금지(단일 프로세서만 가능), TestAndSet(테스), 저급수준의 원자 연산(Swap) → 바쁜 대기, 기아, 교착상태 . 운영체제 : 세마포어(변수S, P/V 연산), Event-Count/Sequence(이벤트 카운트, 티켓) → 교착상태 . 프로그래밍 언어 : 모니터 (상호배제 부작용) Deadlock, 기아상태, 우선순위 역전 |
|
세마포어(Semaphore) |
S, PV연산(Wait, Signal, S--, S++)
|
(정의) 세마포어 변수(S)와 두 개의 연산(P-Wait, V-Signal)으로 임계영역 접근을 제어하는 상호배제 지원 메커니즘, HW 혹은 SW적으로 구현
(동작) . Wait와 Signal의 세마포어 변수 수정은 프로세스 개별적으로 실행 . S는 모든 프로세스가 공유(초기값 1 : 자원 수) , 연산 순서(Wait→Signal)를 따르지 않으면 상호배제 위반 및 교착 상태 발생 가능 → 모니터 . P(S) : While S<=0 do wait // 대기, S--; // 독점 → 프로세스 대기하게 하는 Wait 동작, 임계영역 진입하는 연산 . V(S) : S++; // 원위치로 해제 → 대기 중 프로세스 깨우려고 신호를 보내는 Signal 동작, 임계영역 나오는 연산(Wake Up) (유형) 이진 세마포어(0,1), 계수 세마포어(Counting, 0 이상의 정수값, 자원 Pool 할당) |
|
모니터 |
공유 데이터, 프로시저, 초기화 코드
|
(정의) 순차적으로만 사용할 수 있는 공유자원 혹은 공유자원 그룹을 할당하는데 사용되며, 데이터, 프로시저를 포함하는 병행성 구조
(구성요소) 공유 데이터(모니터 내부 프로시저로만 접근 가능), 임계영역이 코딩된 프로시저, 초기화 코드(모니터 생성 시만 사용) (동작) Monitor monitor name{ procedure P1(...){ } procedure P2(...){ } } |
|
병행 프로세스 |
프로세스 동시 실행
|
(정의) CPU 의 처리 효율성을 증가 시기키 위하여 여러 개 프로세스를 동시에 실행하는 것
(fork, join) . fork L: 단일 연산을 두개의 독립적인 연산으로 분할하여 병행 수행(다음 문장 & 라벨 L 위치) . join : 여러 개의 병행 연산을 하나로 결합 |
|
CPU Bound, I/O Bound
|
(CPU Bound) 프로세스의 진행 속도가 CPU 속도에 의해 제한 되는 것
(I/O Bound) 프로세스의 진행 속도가 I/O 속도에 의해 제한 되는 것, CPU가 I/O에 과도한 집중적인 일을 수행 하는 것 |
||
인터럽트 | IVT, ISR, Polling/Daisy Chain/Vectored | 기외입프감, 폴데벡 |
(정의) 프로그램 실행 도중 예기치 않는 상황 발생 시, 이를 처리(중단→처리→복귀)하는 프로그램의 연속성을 보장하는 메커니즘
(인터럽트 종류, 우선순위 높은 순) 기계 검사 INT(착오), 외부 INT, 입출력 INT, 프로그램 검사 INT(오류), 감시 프로그램 호출 INT(특정 요구) (처리 과정) INT 발생(요청, IRQ) →프로그램 중단(상태 저장, 문맥교환)→인터럽트 처리 루틴(IVT 검색)→인터럽트 서비스 루틴(ISR)→상태 복구 (요청 처리 방식) Polling(별도 TEST I/O선, S/W적), Daisy Chain(INTACK, 우선순위 순 직렬 연결), Vectored(I/O별 별도 INTR,INTA) * 인터럽트 벡터 테이블(IVT) : ISR의 분기주소가 저장된 테이블, 인터럽트 소스와 ISR 분기주소가 1:1 매핑 * 트랩 : SW가 발생 시킨 인터럽트, 내부 인터럽트(오버플로우, 언더플로우, 0 나눗셈), 동기적(시점 일정), 트랩 핸들러 |
인터럽트 중첩(nested interrupt) |
우선순위, 순차적
|
(정의) 인터럽트 처리 루틴을 실행하는 중에 새로운 인터럽트가 발생하는 경우
(처리 조건) 우선순위, ISR 전용 스택, 허용 플래그(허용 enable, 불허 disable) (처리 방법) Priority-based Preemption(우선순위에 따라), Interrupt Pending(순차적으로) |
|
가상메모리(Virtual Memory) |
보조기억장치 일부
|
(정의) 주기억장치보다 큰 프로그램 실행을 위해 보조기억장치의 일부를 주기억장치처럼 사용하는 저장 장치
(요구 페이징, Demand Paging) 효율적 메모리 사용을 위해 현재 요구되는 데이터만 메모리에 적재하는 관리 기법, control bit(valid, invalid) |
|
메모리 관리 기법
|
반배할교 |
(메모리 관리기법)
. 반입 정책(Fetch): 적재 시점, 요구 반입, 예측 반입 . 배치 정책(Placement): 어디에 적재, First Fit, Best Fit, Worst Fit, Next Fit . 할당 정책(Allocation): 어떻게 할당, 고정할당 (페이징 기법, 고정된 크기, 내부 단편화), 가변할당 (세그먼테이션 기법, 가변 세그먼트) . 교체 정책(Replacement): 교체할 블록 선정 - FIFO : 프레임 수를 늘려도 page fault가 증가하는 현상 발생(벨라디 이상현상) - SCR(Second Change Replacement) : FIFO 개선, 참조비트(0이면 교체)) - LRU(가장 오래전 참조, 지역성 활용), LFU(가정 적은 참조 횟수), Optimal(오랫동안 참조되지 않을), Random, NUR(Not Used Recently) |
|
스레싱(Thrashing) |
페이지 교체 시간 소비 큼
|
(정의) 멀티프로세싱 환경에서 CPU가 프로세스 실행보다 페이지 교체에 더 많은 시간을 소요하는 비정상적인 현상
(발생 원인) 리소스 부족, 부적절한 페이지 교체 정책, 다중 프로그래밍 정도 과도화 (해결 방안) . Working Set : 시간적/공간적 지역성 활용하여 자주 참조되는 페이지 집합을 주기억장치에 유지함, [현재시점-윈도우 크기] 동안 참조한 페이지의 집합, 참조 시 마다 Resident Page Set 조정(Set이 윈도우 크기에 도달하면 미참조 페이지를 제외) → 오버헤드 심함 . PFF(Page Fault Frequency) : 페이지 부재 시에만 Resident Page Set(상주 페이지 집합) 조정(프레임 수 조절) (회피 방안) 선페이징, 페이지 크지 조정, 프로그램 구조 개선, 페이지 잠금(일부 페이지는 교체되지 않도록 잠금) |
|
TLB(Translation Look-aside Buffer) |
가상/실제주소 매핑 개선, MMU, 고속 캐시
|
(정의) 자주 참조하는 가상 주소의 실제 주소 매핑 성능 개선을 위해 MMU(Memory Mgmt Unit)에서 사용하는 고속 캐시 메모리
(필요성) 두번 물리적 액세스가 발생하여 메모리 접근 지연이 발생하는 직접사상방식 개선 필요 (동작) . TLB hit : TLB에 있음, CPU는 TLB통해 즉시 물리주소 생성 . TLB miss : 주기억장치 Page 테이블 참조 후 TLB 갱신 . page fault : TLB에도 Page 테이블에도 없음, 디스크에서 페이지 반입 후 페이지 테이블 갱신 |
|
단편화 |
내부/외부, 통합/압축/재배치/버디 메모리 할당
|
(정의) 주기억장치에 프로그램의 할당/반납 과정 반복으로 생기는 빈 공간 조각
(단편화 종류) 내부 단편화(고정분할 방식), 외부 단편화(가변분할 방식, 분할된 영역이 프로그램보다 작아 할당되지 못하고 남는 공간 발생) (해결 방안) . 통합(Coalescing) : 인접한 둘 이상의 빈 공간을 통합 . 압축(Compaction) : 빈 공간을 한 곳에 합침, garbage collection, 압축 수행 시 다른 모든 작업 일시 중지 . 재배치 : 실행 중이던 프로그램을 다른 공간으로 이동시켜 공간 확보 . Buddy Memory Allocation : 필요한 공간에 알맞은 크기까지 버디 블록을 반으로 분할하는 기법, 해제 시 인접한 Free 버디와 통합 |
|
임베디드SW(Embedded) |
호스트 환경, 타겟 환경
|
(개발) HW 파트, SW 파트, 인터페이스 항목으로 나누어 수행
(특징) 특정 목적, 개발/테스트의 어려움, Target H/W, Task code, 라운드로빈/인터럽트 라운드로빈/펑션큐 스케줄링/RTOS (테스트) 호스트 환경에서 개발 → 호스트 환경 에뮬레이터에서 테스트 → 타켓 환경에 포팅 → 타켓 환경에서 테스트 |
|
아두이노(Arduino) | 스케치 |
(정의) 단일 보드 마이크로 컨트롤러를 포함하는 오픈 소스 기반 피지컬 컴퓨팅 플랫폼
(특징) 통합환경(IDE) 제공, 다양한 I/O, 오픈소스 기반 (구성요소) 개발 환경(PC, 아두이노 IDE, USB 케이블), 스케치(Sketch, 아두이노 보드에서 실행되는 프로그램), 아두이노 본체, I/O (개발 사이클) Edit(스케치 작성) → Compile → Upload(보드로 전송, USB) → Run → Done * 라즈베리파이 : 기초 컴퓨터 과학 교육 증진 및 취미를 위해 만든 ARM 기반의 싱글 보드 컴퓨터 |
|
COW(Copy on Write) |
쓰기 할 때 카피
|
(정의) 효율적 리소스 관리를 위해 SW나 라이브러리에서 중복된 리소스 생성이 필요한 경우(ex.fork) 쓰기가 발생할 때 리소스를 카피하는 기법
(특징) 성능 향상, 메모리 사용량 절감, 쓰기 지연(COW를 위한 오버헤드 발생) (동작 절차) Process A에 대한 fork 요청 시, Proc B는 Proc A의 메모리를 공유하고 Proc B에서 값 변경 시 B를 위한 Page를 할당함 |
|
DW |
ODS, DW, Data Mart, OLAP, ETL
|
(정의) 의사 결정을 지원하는 기간시스템의 DB에 축적된 데이터를 공통의 형식으로 변환해서 관리하는 DB, 내외부 데이터
(구성요소) ODS(Operation Data Store, 현재 데이터 저장소), DW, Data Mart, OLAP(Analytical), ETL(Extract, Transform, Load), 메타데이터 (구축 접근 방식) 하향식(DW 구축 후 Data Mart 구축), 상향식(Data Mart 구축 후, DW로 통합) (모델링) 다차원 모델링(Star 스키마 : 사실 테이블 중심, 차원 테이블 / Snowflake 스키마 : 차원 테이블이 정규화된 구조) * 사실 : 실제 데이터 요소, * 차원 : 값들을 보는 관점, * Data Mart : DW에서 데이터를 꺼내 사용자에 제공하는 역할 |
|
EDW(Enterprise DW) |
RTE환경, 전사적 통합
|
(정의) RTE 환경에서 DW를 전사적으로 확장한 모델, BI 애플리케이션을 위한 데이터 인프라 역할 강조
(모델링) ER 모델(OLTP), 다차원모델(OLAP) |
|
ETL(Extract, Transform, Load) |
추출, 정제, 적재
|
(정의) 소스 시스템에서 (배치 기반으로) 데이터를 추출, 분석하여 오류 데이터를 변경(정제)한 후, DW에 적재하는 과정
(아키텍처) 운영시스템 중심, DW 중심, 별도 ETL 서버 중심 |
|
CDC(Change Data Capture) |
변경 데이터 캡쳐, 타겟 시스템 전달
|
(정의) 소스 시스템의 변경된 데이터만을 캡쳐해 타겟 시스템(운영,분석 등 시스템)에 실시간/준실시간 전달해 주는 기술
(구성요소) Capture/Export/Import/Post Process, Capture/Export/Post Queue (동작 원리) 소스 시스템 Log 발생 시 Capture Process에 의해 감지 및 Queuing → Export Process에 의해 타겟 시스템 전송 → 타겟 시스템 Import Process가 Post Queue에 적재 → Post Process가 큐의 내용 읽어 타겟 시스템에 전달 |
|
OLAP(OnLine Analytical Processing) |
다차원 분석, 직접 접근, 대화식, 의사결정 지원
|
(정의) 사용자가 다차원 데이터 분석을 할 수 있도록 지원하는 온라인 분석 Processing, 의사결정 지원 시스템의 대표적 예
(특징) 다차원성, 직접 접근, 대화식 분석, 의사결정 지원 (유형) ROLAP(Relational, 데이터는 RDBMS, 다차원 프로세싱 위한 별도 ROLAP 엔진), MOLAP(Multimensinal, 데이터/처리 프로세스 모두 MOLAP 서버에, 다차원 큐브 생성), HOLAP(Hybrid, ROLAP+MOLAP, 실제 데이터는 RDBMS, 요약/계산된 데이터는 MDBMS) |
|
데이터마이닝(Data Mining) | 지식 발견 |
(정의) 대량의 데이터로부터 알려지지 않은 정보, 패턴을 찾아 의사결정에 활용하려는 데이터분석 및 지식 발견 프로세스
(주요기법) . 의사결정 트리(Decision Tree) : 분류나 예측 목적, 계층적 표현, 분석 과정 설명에 용이 . 신경망(Netural Network) : 반복 학습과정 통한 패턴 일반화, 입력층→은닉층(n layer)→출력층 . 연관 분석(연관 규칙) : 연관성 측정하여 그룹화, 지지도(Support, 전체에 대한), 신뢰도(Confidence, X에 대한), Apriori . 군집화(Clustering) : 거리 기반 클러스터 |
|
CRISP-DM | 비즈니스 이해, 6단계 데이터 마이닝 방법론 | 비이준모평전 |
* Cross Industry Standard Process for Data Mining
(정의) 비즈니스 이해와 데이터분석을 바탕으로 6단계로 수행되는 데이터 마이닝 방법론 (6단계) 비즈니스 이해(고객이해, 계획수립) → 데이터 이해(데이터 수집, 특성확인) → 데이터준비(데이터 선별/정제/구조화) → 모델링(기법선택, 모델링 생성/순위 지정) → 평가(모델링 평가, 중요항목 도출) → 전개/배포(전개 전략 수립, 지속개선, 최종보고서) |
반응형
'정보관리 기술사 공부' 카테고리의 다른 글
주요 토픽 정리 391~420 [DS] (0) | 2023.07.27 |
---|---|
주요 토픽 정리 361~390 [DS] (0) | 2023.07.27 |
주요 토픽 정리 301~330 [CAOS] (0) | 2023.07.27 |
주요 토픽 정리 271~300 [CAOS] (0) | 2023.07.27 |
주요 토픽 정리 241~270 [보안, CAOS] (0) | 2023.07.27 |