본문 바로가기

전체보기

(448)
[104] 자료구조 05차시 포인터 1. 포인터 개념 가. 포인터란? 사용되는 모든 변수는 메모리의 특정 위치에 저장되는데 그 위치를 나타내는 메모리 주소 나. 포인터변수 메모리의 주소 값을 저장하는 특별한 변수 포인터 변수가 어떤 변수의 주소를 저장하고 있다는 것은 그 변수를 가리키고 있다는 의미 연결된 주소의 변수 영역 액세스 가능 포인터 변수를 간단히 포인터라고 함. 다. 포인터 엑세스 처리 편지봉투에 받는 사람의 집주소를 쓰면 그 주소로 편지가 전달되어 집주인이 편지를 받게 됨. 편지봉투를 포인터라고 생각하면 편지봉투에 쓰는 "받는 사람 주소"는 포인터에 저장된 변수의 메모리 주소가 되고, 주소에 해당하는 집주인이 편지를 받은 것은 포인터를 통한 엑세스 처리로 생각할 수 있음. 라. 포인터 사용 예시 1) 포인터를 사용해 다른 변수..
[103] 운영체제 06차시 스케쥴링 알고리즘 1. 선입 선출, 최소 작업 우선 스케쥴링 가. 선입선출(FCFS, First Com First Served) 스케쥴링의 개념 비선점 방법으로 프로세서 스케쥴링 알고리즘 중 가장 단순 프로세서 요청하는 순서대로 프로세서 할당, 선입 선출 FIFO 큐로 구현 일괄 처리 시스템에서는 매우 효율적이나 빠른 응답을 요청하는 대화식 시스템에는 적합하지 않음. 도착하는 프로세스의 순서에 따라 평균 대기 시간과 평균 반환 시간에 차이가 있음. 나. FCFS 스케쥴링의 장점 스케쥴링의 이해와 구현이 단순함. 준비 큐에 있는 모든 프로세스가 결국 실행되므로 기아 없는 공정한 정책임. 프로세서가 지속적으로 유용한 프로세스를 수행하여 처리율이 높음. 다. FCFS 스케쥴링의 단점 비선점식이므로 대화식 프로세스에는 부적합함...
[102] 운영체제 05차시 프로세서 스케쥴링 1. 스케쥴링의 개념과 목적 가. 개념 여러 프로세스가 번갈아 사용하는 자원을 어떤 시점에 어떤 프로세스에 할당할지 결정 자원이 프로세서인 경우를 프로세서 스케쥴링이라고 하고, 대부분의 스케쥴링이 프로세서 스케쥴링을 의미 스케쥴링 방법에 따라 프로세서를 할당 받을 프로세스를 결정하므로 스케쥴링이 시스템의 성능에 영향을 미침. 좋은 스케쥴링은 프로세서 효율성을 높이고, 작업(프로세스)의 응답시간을 최소화하여 시스템의 작업 처리 능력을 향상 시킴. 나. 목적 1) 자원 할당의 공정성 보장 2) 단위 시간 당 처리량 최대화 3) 적절한 반환 시간 보장 4) 예측 가능성 보장 5) 오버헤드 최소화 6) 자원 사용의 균형 유지 7) 반환 시간과 자원의 활동 간에 균형 유지 8) 실행 대기 방지 9) 우선순위 10..
[101] 알고리즘 06차시 특수한 정렬 알고리즘 1. 힙 정렬(Heap Sort) 가. 개념 힙이라는 특수한 자료구조를 사용하는 정렬 알고리즘 주어진 배열을 힙으로 만든 다음 차례로 하나씩 힙에서 제거함으로써 정렬함. 나. 힙(Heap) 맨 아래 층을 제외하고는 완전히 채워져 있고, 맨 아래층은 왼쪽부터 꽉 채워져 있음.(완전 이진 트리) 각 노드의 값은 자식의 값보다 작거나 같음.(최소힙) 최대힙과 최소힙이 있음. https://ko.wikipedia.org/wiki/힙_(자료_구조) 힙 (자료 구조) - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 1부터 100까지의 정수를 저장한 최대 힙의 예시. 모든 부모노드들이 그 자식노드들보다 큰 값을 가진다. 힙(heap)은 최댓값 및 최솟값을 찾아내는 연산을 빠르게 ko.wikipe..
[100] 알고리즘 05차시 효율적인 정렬 알고리즘 1. 쉘 정렬(Shell Sort) 가. 개념 주어진 입력 데이터를 적당한 매개 변수의 값만큼 서로 떨어진 데이터들과 비교하여 교환하는 과정을 매개 변수의 값을 바꾸어가며 되풀이하는 것 영역을 나눈 후 삽입하는 보완된 삽입 정렬 개념 입력 파일을 어떤 매개변수의 값으로 서브파일을 구성하고, 각 서브파일을 삽입 정렬 방식으로 배열하는 과정을 반복하는 정렬 방식 이때 서로 떨어져 있는 데이터들은 하나의 부분 리스트를 구성하며 삽입 정렬에 의해 개별적으로 정렬됨. 먼저 적절한 매개 변수의 값을 선택한 후 점차 감소시켜 가면서 쉘 정렬을 수행하고 매개 변수의 값이 1이 될 때 종료함. 나. 쉘 정렬 복잡도 쉘 정렬은 최악 경우(Worst Case)의 시간복잡도가 \(O(n^{2})\) 쉘 정렬의 수행 속도는 간..
[99] 소프트웨어공학 06차시 소프트웨어 개발방법론 1. 소프트웨어 개발방법론의 개요 가. 소프트웨어 개발방법론이란? 1) 의미 소프트웨어 개발 생명주기 내의 각 단계에서의 수행 방법과 활동들을 구체적으로 정의 2) 종류 UP(Unified Process) XP(eXtreme Programming) 마르미(MaRMI: Magic and Robust Methodology Integrated) 2. UP 방법론 가. 개요 Jacobson, Booch, Rumbaugh에 의해 개발된 객체지향 소프트웨어 개발 방법론 소프트웨어 개발 단계를 시간의 순서에 따라 네 개의 범주(Inception, Elaboration, Construction, Transition)로 나누고, 각 범주에는 요구사항 도출부터 평가까지 개발 생명주기가 포함되어 있음. 나. 특징 1) 반복..
[98] 소프트웨어공학 05차시 소프트웨어 프로젝트 계획 및 통제 1. 소프트웨어 프로젝트 계획서 및 팀 구성 가. 프로젝트 계획서 1) 의미 프로젝트 관리자 뿐만 아니라 프로젝트 참여자 모두가 프로젝트를 진행해 가면서 참조하는 프로젝트의 중심이 되는 문서 2) 포함내용 프로젝트 계획서 이전에 이미 제안서 요구사항 문서 작성을 통해 프로젝트의 범위를 파악함. 프로젝트 계획서에는 프로젝트 개발 생명주기에 맞추어 모든 작업을 태스크(Task)들과 액티비티(Activity)들로 나눔. 기간과 책임자를 분배하여 업무 및 일정 계획이 나타나 있어야 함. 3) 작성 순서 프로젝트 관리자는 프로젝트 태스크 파악, 각 태스크를 수행하기 위해 필요한 노력 예측, 인적 자원 및 기타 자원을 각 태스크에 할당, 일정 계획 수립을 함. 프로젝트 참여자의 검토를 거쳐 합의 하에 프로젝트 채택..
[97] 데이터베이스 06차시 엔티티-관계 데이터모델2 1. 약한 엔티티 타입 가. 약한 엔티티타입(Weak Entity Type) 1) 키 애트리뷰트가 없는 앤티티 존재가 다른 엔티티에 의존 하지만 존재 종속성이 있다고 해서 반드시 약한 엔티티는 아님. 2) 약한 엔티티는 식별 엔티티타입과 식별 관계타입에 참여해야 함. 3) 약한 엔티티들은 다음의 조합에 의해 식별됨. 약한 엔티티타입의 부분 키(Partial key) + 식별 엔티티타입의 키 2. ER 설계의 개선 가. 데이터베이스에 대한 ER 설계의 개선 초기 엔티티 설계에서 관계를 나타내는 애트리뷰트들을 관계 타입으로 변환하여 개선 각 관계타입의 카디낼러티와 참여 제약은 요구사항들로부터 결정됨. 카디낼러티와 참여 제약이 요구사항들로부터 결정될 수 없다면 데이터베이스 구축을 의뢰한 고객과 협의해야 함. ..