본문 바로가기

전체 글265

프로세서 vs 프로세스 프로세서 vs 프로세스 프로세서 - 하드웨어적인 측면- 컴퓨터 내에서 프로그램을 수행하는 하드웨어 유닛- 중앙처리장치를 뜻하며, 적어도 하나 이상의 ALU와 처리 레지스터를 내장하고 있음 - 소프트웨어적인 측면- 데이터 포맷을 변환하는 역활을 수행하는 데이터 프로세싱 시스템(데이터 처리 시스템)- ex) 워드프로세서, 컴파일러 등 - 결론적으로 CPU나 Microprocessor 라는 하드웨어를 의미 프로세스 - 특정 목적을 수행하기 위해 나열된 작업의 목록- 프로그램 : 작업의 과정이 파일로 저장되어 있는 것- 프로세스 : 메모리에 적재되어 실행 중이거나 대기 중인 프로그램 - 결론적으로 메모리에 적재되어 프로세서에 의해 실행중인 프로그램 2015. 7. 20.
Pthread Attributes Pthread Attributes 스레드 속성 int pthread_create(pthread_t *thread, const pthread_attr_t *att, void(* start_routine)(void *), void *arg) pthread_attr_t - 스레드 속성 타입- 새로 생성되는 스레드의 속성을 설정- Atrribute를 사용하여 설정 가능한 속성의 예시- Detached 스레드의 생성- User mode / Kernel mode 스레드의 생성- 스레드의 stack size 설정 스레드 종료와 자원 회수 - pthread_join의 기능- 스레드 자원 반환- 스레드 종료 여부 확인- 스레드가 종료될때까지 pthread_join 함수가 끝나지 않음- thread 0 은 thread 1.. 2015. 7. 18.
OpenMP 프로그래밍 2015. 7. 17.
큐(Queue) 큐 한쪽 끝에서는 삽입 작업이 이루어지고 반대쪽 끝에서는 삭제 작업이 이루어지는 자료구조. 스택과 마찬가지로 배열과 리스트로 구현이 가능하다.시간 순서대로 쌓이며 가장 먼저 삽입된 자료가 가장 먼저 삭제되는선입선출(FIFO : First In Fist Out)의 구조를 갖는다. Insert : 새로운 데이터를 삽입하는 작업(rear 에서 발생)Remove : 데이터를 제거하는 작업(front 에서 발생Peek : front가 가리키는 데이터를 읽는 작업 1. 큐 - 배열 형태 rear 위치에 데이터가 삽입된 후 rear++front 위치에 있는 데이터를 삭제한 후 front++ 삽입, 삭제가 반복될 수록 rear와 front가 계속 증가하기 때문에 이미 꺼낸 데이터가 들어있던 배열의 인덱스를 사용할 수 .. 2015. 7. 8.
프로세스간 통신(IPC - InterProcess Communication) 프로세스간 통신(IPC) 프로세스들간의 상호 자료와 정보를 교환하는 통신 방법. 목적 정보공유 : 동일한 정보에 대한 병행 접근(공유 파일 등)계산 가속화 : 특정 태스크의 작은 분할 태스크로의 분할 실행모듈성 : 별도의 프로세스나 스레드로 나누어 모듈식 형태의 시스템 구성편의성 : 한 순간에 많은 작업 수행 통신 방법 1. Pipe 하나의 프로세스는 읽기만 하고 다른 하나의 프로세스는 쓰기만 할 수 있다. 한 쪽 방향으로만 통신이 가능하기 때문에Half-duplex (반이중) 통신이라고 한다. Full-duplex (전이중) 통신을 가능하게 하기 위해 두 개의 파이프를 만들어야 한다. 반이중 통신이므로 2개의 Pipe(읽기 전용, 쓰기 전용)가 필요하며 구현이 매우 복잡해진다. 2. Message Qu.. 2015. 7. 8.
스택(Stack) 스택 같은 구조와 크기의 자료를 top이라고 정한 한 곳에만 쌓을 수 있고 top으로만 접근하도록 만든 자료구조 배열과 리스트로 구현이 가능하다. 시간순서에 따라 자료가 쌓이고 삭제 시에는 가장 마지막에 삽입한 자료가 가장 먼저 삭제되는 후입선출(LIFO : Last In First Out)의 구조를 갖는다. 연산 Push : 스택안에 데이터를 집어 넣는 작업 Pop : 스택안의 데이터를 꺼내는 작업 Peek : top이 가리키는 데이터를 읽는 작업 구조 1. 스택 - 배열 형태 2. 스택 - 리스트 형태 장점 : 메모리의 낭비를 막을 수 있고 Stack Full의 한계를 벗어날 수 있다. 데이터의 추가와 삭제가 헤더부분에서 일어나기 때문에 위치를 찾기 위한 추가 연산이 필요하지 않다. 구현 실행코드 /.. 2015. 7. 8.
728x90