본문 바로가기

전체 글144

[논리회로] 병렬가산기, 비교기 병렬가산기(parallel-adder) 란 전가산기 여러 개를 병렬로 연결하여 2비트 이상인 가산기이며, 2진수 각 자리의 덧셈을 동시에 행하여 그 답을 내는 동작을 한다. 일반적으로 n비트의 2진 병렬가산기는 n개의 전가산기(FA)로 구성된다. 직렬가산기는 회로가 작지만 매우 느림. 병렬가산기는 직렬가산기 보단 빠름. 병렬가산기는 아랫단에서 윗단으로 전달되는 캐리(리플-캐리)때문에 전가산기 한 개를 지날 때마다 점점 더 지연이 심해지며 비트가 늘어날수록 지연이 심해진다. 이것을 해결하기 위해 캐리예측가산기(CLA, carry-look ahead-adder)를 사용함! carry generate와 carry propagate란 함수 혹은 연산자를 이용하면 병렬성을 어느 정도 얻을 수 있다는 이점이 있다... 2020. 12. 23.
[논리회로] 조합논리회로, 전가산기 논리회로 중간고사 보고 아 이건 걍 기출풀이가 답이구나! 싶어서 기출문제장으로 직행했다. 아니 근데 이게 웬걸 넘나 어렵자나? 으악악악악 수업시간때 딴 짓한 죄값이다. 조합논리회로는 논리곱 논리합 논리부정 세가지 조합으로 만들어짐. 입력신호, 논리게이트, 출력신호로 구성됨. 조합논리회로에는 ! 가산기 비교기 디코더 인코더 멀티플레서 디멀티플레서 코드변환기가 있다. 조합 논리회로는 출력되는 불 함수 값이 입력값에 의해서만 정해지고 내부에 기억능력이 '없다'! 반가산기는 xor하나 and하나로 이루어짐 반'감'산기는 a에서 and로 가는쪽에 not 붙임. or, and, nand, nor로 이루어진 xor 회로 찾아서 외워라!!!!!!!! 반가산기 출력의 논리식은 S(합)=A'B+AB' (A XOR B 임ㅋ.. 2020. 12. 23.
[자료구조] [C] 퀵 정렬 (quick sort) 퀵정렬 요약) 피벗을 정한다. 피벗보다 작은 거 왼쪽으로 큰 거 오른쪽으로 보냄 (정렬 안되어있음) 피벗은, 중간값을 잡는 등 응용을 할 수 있음. 과정) 피벗 가장 왼쪽 숫자라고 가정한다. 두개의 변수 low와 high를 사용한다. low 변수는 피벗보다 작으면 통과하고, 크면 정지한다. high 변수는 피벗보다 크면 통과하고, 작으면 정지한다. 정지된 위치의 숫자를 low와 high 교환한다. 쭉 가다가 low와 high가 교차되면 종료. high 자리에 피벗(가장 왼쪽 숫자) 집어넣음. 5 3 8 4 9 1 6 2 7 피벗 low high low high 5 3 2 4 9 1 6 8 7 low high low high low high 5 3 2 4 1 9 6 8 7 low high high low .. 2020. 12. 23.
[자료구조] [C] 사람 이름 사전적 순서 정렬하는 DoubleLinkedList 이중연결리스트 사람의 이름을 사전적 순서로 정렬된 리스트를 유지하는 이중연결리스트를 구현하고 완성하시오. #include #include #include /* 사람의 이름을 사전적 순서로 정렬된 리스트를 유지하는 이중연결리스트 */ /* 컴퓨터공학과_김진엽*/ typedef char element; typedef struct person { element name[64]; struct person *next; struct person *prev; }person; person *first, *last; void init(); //리스트초기화 void dllsorted_insert(); //입력 void dlist_display(); //출력 int main() { int a; init(); for(;;) { puts(".. 2020. 12. 23.
[유닉스] make 정리 [ make ] 정의: -make는 각 파일 간의 종속 관계를 파악해 기술 파일(Makefile)에 기술된 대로 컴파일 명령이나 쉘 명령을 순차적으로 내린다. -make는 각 파일에 대한 반복적 명령을 자동화 시켜 개발자의 수고를 덜고, 시간을 절약할 수 있다. makefile 내용 all : diary #(1) diary : memo.o calendar.o main.o #(2) gcc -W -Wall –o diary memo.o calendar.o main.o #(3) memo.o : memo.c #(4) gcc -w -Wall -c -o memo.o memo.c #(5) calendar.o : calendar.c (6) gcc -w -Wall -c -o calendar.o calendar.c #(7).. 2020. 12. 23.
[유닉스] gdb 디버거 정리 [gdb 디버거] 디버거 사용하는 목적 특정 시점에서의 메모리 값과 레지스터 값을 확인하기 위함. 오류찾기 gdb란? GNU에서 만든 매우 강력한 디버거 gdb 사용하기 위해서는 –g 옵션을 붙여야한다 (디버깅 정보 삽입) 예: gcc –g –o a a.c -디버깅 정보란? 내부에 사용된 심볼 문자열과 심볼의 주소, 컴파일에 사용된 소스 파일, 컴파일된 각각의 인스트럭션들이 어떤 소스파일의 어떤 행에 해당되는지에 대한 정보 등을 말함. *기본 명령어 gdb 실행 : gdb 실행파일명 gdb 종료 : q 또는 Ctrl + d 소스보기 : l (기본 10행 출력) 나머지 부분 보려면 다시 l이나 enter키 특정행 보기: l 행번호 출력된 행 이전행 보기 : l - 특정 함수부분 보기 : l 함수명 다른 파.. 2020. 12. 23.
[유닉스] gcc 컴파일 정리 gcc 컴파일러란? GNU에서 만든 C컴파일러 컴파일 의미 인간이 이해할 수 있는 언어로 작성된 소스코드를 CPU가 이해할 수 있는 기계어로 번역하는 과정 컴파일 과정 like.c (c소스) -> cppo or cc1-E (전처리기) -> like.i (전처리 파일) -> cpp (c컴파일러) -> like.s (어셈블리파일) -> as (어셈블러) -> like.o (오브젝트파일) -> id or collect2 (링크) -> like 실행파일 전처리 과정 (cc1-E) 1. 헤더파일 삽입 (함수 사용 전에 함수 타입 선언 필요) 2. 매크로 치환 및 적용 어셈블리 소스 파일로 컴파일 과정 (cc1) (like.i -> like.s) like.i (전처리파일) -> front-end (C,C++,JAV.. 2020. 12. 23.
[유닉스 이론과 실습] 7장 실습 1. /etc/services 파일에서 tcp를 포함하고 있는 행의 수를 출력하시오. grep -c tcp /etc/services 2. 현재 디렉토리의 모든 파일 중에서 unix를 포함하고 있는 파일의 이름을 출력하시오. grep -l unix * 3. 홈 디렉토리의 *.txt 파일 중에서 Jeremy lin 이라는 이름을 찾으시오. grep 'Jeremy lin' ~/*.txt 4. /etc/hosts 파일에서 #으로 시작하는 모든 행을 행 번호와 함께 출력하시오. grep -n '^#' /etc/hosts 5. 현재 사용하는 유닉스 시스템에서 bash나 ksh을 사용하는 사용자의 목록을 출력하시오. (/etc/passwd 파일에 필요한 정보 있음) egrep 'bash|ksh' /etc/passwd.. 2020. 12. 23.
[유닉스 이론과 실습] 8장 연습문제 1. 유닉스의 프로세스에는 어떤 종류가 있는지 설명하시오. 데몬, 부모, 자식, 고아, 좀비 2. 유닉스의 고아 프로세스와 좀비 프로세스의 차이를 설명하시오. 고아: 실행도중에 부모 프로세스가 종료된 프로세스, 1번 프로세스를 새로운 부모로 가짐 좀비: 부모프로세스가 종료처리를 하지 않은 프로세스, 종료가 되었음에도 할당된 시스템 자원이 회수되지 않은 상태 3. user1 사용자가 실행시킨 프로세스를 모두 찾기 위해 사용할 수 있는 명령에는 무엇이있는지 설명하시오. ps -u user1 4. user1 사용자가 실행시킨 모든 프로세스의 실행 날짜를 알아보려고 한다. ps 명령의 어느 옵션을 조합하여 사용하면 되는지 설명하시오. ps -ef | grep user1 5. pgrep 명령을 사용하여 현재 실행.. 2020. 12. 23.