본문 바로가기

대학교시절

(14)
운영체제 과제 #2 (뮤텍스와 세마포어 사용하기) Producer/Consumer 문제를 해결하는 프로그램을 작성 하라. - 자료를 저장할 큐를 만들고 Pthread를 사용하여 Producer/Consumer thread를 생성한다. Producer thread는 큐의 자료를 1로 계속 채우고, Consumer thread는 큐의 자료를 소모하여 0으로 만든다. 이때, Consumer thread는 큐의 가장 오래된 자료부터 소모하고, Producer thread는 큐의 가장 최근에 자료를 생성했던 다음 빈자리부터 자료를 채운다. (최초의 자료 생성시 큐의 가장 왼쪽부터 생성하고, 큐의 가장 오른쪽에 도달 시 큐의 가장 왼쪽으로 이동한다.) Consumer thread가 자료를 소모하거나 Producer thread가 자료를 생성하는 것을 각각 1번의 ..
운영체제 과제 #1 (fork 와 exec 사용하기) 과제 1 1) Command Execution (20%) UNIX Command를 아규먼트로 취급하여 실행하는 프로그램을 작성하라. 프로그램 실행은 다음과 같은 형식을 따른다. (%는 shell prompt) 예를 들어 program_name이 hw01이고, command가 cat test.c 라면, %hw01 cat test.c를 실행하면 test.c의 내용이 출력된다. 2) Process Statistics (20%) 위의 프로그램에서 command가 실행된 후에 command에 사용된 다음과 같은 시스템 리소스에 대한 프로세스 통계를 출력하는 기능을 추가한다. 프로세스 통계에 대한 정보는 getrusage()를 참고한다. 프로세스 통계 - 사용된 CPU시간 - command가 실행되고 경과된 시간 ..
PCM(Phase_Change Memory) 1. PCM이 나타나게 된 배경 Phase_Change Memory 또는 PCM은 오늘날 메모리 기술 분야에서 매력적인 메모리 기술입니다. PCM은 수행능력, 비용, 코드밀집도 등의 향상은 Nand ,NOR flash 메모리를 PCM 으로 바뀌도록 할 것입니다. 1970년 Electronics magazine article 에는 비휘발성이고 다시 프로그래밍이 가능한 오늘 날 Numonyx devices와 매우 유사한 메모리를 소개했습니다. 하지만 이것은 매우 긴 시간동안 수면 위로 나오지 못하고 제품으로 만들어지지 못했습니다. 두 가지의 이유가 존재하는데 가장 큰 이유는 시장 내에서 지금 존재하는 메모리가 다른 어떠한 메모리보다 경제적이기 때문입니다. 대체할 메모리들은 특정 프로세스에서 크기 대 가격 면..
대학교 C언어 과제 모음 1. 최대공약수와 최소공배수 /* 문서이름 : Hw2-1 프로그램 작성자 : americano@korea.ac.kr 프로그램 작성일 : 2011년 10월 17일 프로그램 주제 : 두개의 정수를 입력받아 최대 공약수(GCD)와 최소 공배수(LCM)를 구하기 구현방법: #최대공약수 구하는 방법 유클리드의 호제법 알고리즘을 이용하였습니다. 두 입력 값 중 큰 값과 작은 값을 구분하여 M과 N으로 지정하였습니다. 재귀 함수를 이용하여 M을 N으로 나눈 나머지가 0이 될 때 까지 N이 가진 값을 M에 지정하고 그 나머지 값을 N에 지정하여 다시 M을 N으로 나누었습니다. 그리고 나머지가 0이 되면 최대공약수는 M이므로 재귀함수를 종료하였습니다. 유클리드 호제법: 1단계 : 두 입력 값 중 큰 값을 M, 작은 값을..
프롤로그(Prolog ) 언어를 이용한 교환정렬, 합병정렬, 쾌속정렬, 8-queens 구현 1. 개요 가. Prolog 란? 프롤로그(Prolog)는 논리형 프로그래밍 언어이다. 이름은 '논리 프로그래밍'을 의미하는 프랑스어: programmation en logique에서 온 것이다. 1973년 프랑스 마르세유대학교의 알랭 콜메르(Alan Colmerauer)가 개발한 언어로서, 논리식을 토대로 하여 오브젝트와 오브젝트 간의 관계에 관한 문제를 해결하기 위해 사용한다. 프롤로그는 술어 논리식을 프로그램, 증명하는 것을 계산한다는 것으로 간주하는 관점에서 새로운 계산의 기술 형태를 취하고 있다. 즉, 프로그램 자체는 논리식의 모양으로 만들어지고, 그 프로그램을 실행하는 처리계가 그 증명기로 되어 있다. 추론 기구를 간결하게 표현할 수 있기 때문에 인공지능이나 계산 언어학 분야, 특히 프롤로그가..
PCI Express™ PCI Express™ 1. 개요 PCI Express는 다양한 미래 컴퓨팅과 통신 플랫폼을 위해 I/O 상호 연결을 할 것이다. 대역폭 한계는 늘어나고 병렬버스는 직렬 인터페이스로 대체되지만 소프트웨어 인터페이스나 그것의 모델 기법과 같은 PCI의 속성들은 그대로 유지 될 것이다. 분할 트랜잭션 프로토콜은 우선순위화 되어있다. 그들의 타겟에 전송되는 패킷이 최적화 되어 내부에 구현되어 있다. PCI Express는 PCI와 자연스러운 통합을 지원하고 새로운 시스템 형태를 사용하기 위해 우리는 다양한 형태의 요소를 이해해야 한다. 2. 탄생 배경 기존의 PCI 버스는 지난 10년 동안 많은 것을 제공하였고 그것은 다음 몇 년에도 중요한 역할을 수행할 것이다. 오늘날 프로세서와 I/O 장치는 좀 더 높은 ..