본문 바로가기

정보통신

[컴퓨터 구조] 제어 유니트 (1) 제어 유니트 (1) 안녕하세요 지토우에요.오늘은 제어 유니트에 대해 배워봅시다. 제어 유니트의 기능- 명령어 코드의 해독- 명령어 실행에 필요한 제어 신호들의 발생 마이크로 명령어: 명령어 사이클의 각 주기에서 실행되는 마이크로-연산들에 대응되는 비트들로 이루어진 단어로서, 제어단어 (control word) 라고도 합니다. 마이크로 프로그램: 마이크로 명령어들의 집합 루틴(routine): CPU의 특정 기능을 수행하기 위한 마이크로 명령어들의 그룹ex) 인출 사이클 루틴, 실행 사이클 루틴, 인터럽트 사이클 루틴 제어 유니트의 구조 명령어 해독기 ( instruction decoder): 명령어 레지스터(IR)로부터 들어오는 명령어의 연산 코드를 해독하여 해당 연산을 수행하기 위한 루틴의 시작 주소를.. 더보기
[자료구조] malloc을 이용한 더블포인터와 주소 안녕하세요 지토우에요.오늘은 malloc을 이용해 더블포인터 소스를 공부해봅시다. 이 소스에 gdb를 돌리면 어떻게 될까요~? [ds1603:~, 4]$ gdb malloc3GNU gdb (GDB) Red Hat Enterprise Linux (7.2-48.el6)Copyright (C) 2010 Free Software Foundation, Inc.License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it.There is NO WARRANTY, to the extent permitted by law. Type "show copying"and "show warranty".. 더보기
[C언어] 포인터 변수의 선언 [C언어] 포인터 변수의 선언 안녕하세요 지토우에요.지난 시간에는 포인터가 어떤 것인지에 대해 간략하게 배웠지요?오늘은 포인터 변수의 선언과 사용에 대해 배울 것입니다.그럼 오늘도 열공합시다 ^0^ 1. 포인터 변수의 선언 포인터 변수도 변수이므로 사용하기 위해서는 선언해야 합니다.다음은 포인터 변수의 선언 형식을 나타내고 있습니다.포인터 변수의 선언은 자료형 다음에 * 연산자를 붙이고 포인터 변수의 이름을 쓰는 식입니다. 자료형 포인터 변수의 자료형을 지정, 자료형 다음에 * 연산자를 붙임포인터 변수 이름 주소를 저장할 변수의 이름을 지정NULL 포인터 설정 포인터 변수 선언 시 NULL 로 초기화 NULL 포인터란 무엇일까요?포인터 변수에 아무 주소도 저장하지 않겠다는 의미입니다.NULL은 '널' 이.. 더보기
[C언어] 1차원 배열의 주소와 값의 참조 [C언어] 1차원 배열의 주소와 값의 참조 안녕하세요 지토우에요~이번엔 1차원 배열의 주소와 값의 참조에 대해 공부해봅시다. 1. &는 주소를 참조하는 연산자 우선, &에 대해 약간의 설명을 해드리겠습니다.&는 엠퍼센트라고 읽습니다.and를 대신하는 타이포그래픽 부호라고는 하는데,보통 c언어에서는 주소연산자라고 기억하시면 됩니다. &를 사용하면 메모리 공간의 주소를 표현할 수 있는데요.다음 표를 봐주세요. 변수의 주소 참조 배열의 주소 참조 사용법 &변수 이름 &배열 요소 ex) int a=10;printf("%x \n", &a) // a의 주소 int array[2]={10,2}printf("%x \n", &array[0]); // array[0]의 주소printf("%x \n", &array[1]);.. 더보기
[C언어] 배열 선언 시 주의할 점 [C언어] 배열 선언 시 주의할 점 안녕하세요 . 지토우에요. 주말에는 포스팅하기가 어려워서 자꾸 1일 1 포스팅의 약속을 지키지 못하게 되네요... 예약을 걸어서라도 약속을 지키도록 하겠습니다 ㅠ ㅠ 어쨌든, 오늘은 배열 선언 시에 주의할 점에 대해서 알려드릴게요. 1. 배열 요소는 0부터 시작 다음 코드에서 int array[2]는 배열 요소를 총 2개 선언하고 있습니다. 그런데 array[2]=3은 배열의 세 번째 요소에서 데이터 3을 저장하라는 의미로 에러가 발생합니다. 왜냐하면, 배열의 요소는 0부터 시작하기 때문이죠! array[0], array[1]은 존재하지만 array[2]는 존재하지 않습니다. 2. 배열 초기화를 중괄호로 할 때 배열의 선언과 초기화가 개별적으로 이뤄어지면 안됨 다음 코.. 더보기
[리눅스] 서비스 제어 흐름도 [리눅스] 서비스 제어 흐름도 안녕하세요. 지토우에요. 오랜만의 리눅스이지요? 간단히 서비스 제어 흐름도에 대해 설명하도록 할게요. 1. 서비스 제어 흐름도 리눅스 서비스 제어 흐름도 입니다. 간단히 설명하자면, 사용자로부터 최초의 서비스를 요청받아 네트워크 디바이스인 이더넷을 통해 커널을 통과합니다. 그 후 init process에 의해 데몬들은 초기화되고, 방화벽의 룰에 의해 패킷이 필터링 됩니다. 이후 서비스가 독립형 데몬으로 구동될 경우 (초록색 화살표) 서비스가 제공 및 로깅이 진행됩니다. 슈퍼 인터넷 데몬으로 구동되면 (빨간색 화살표) tcp 접근 제어에 의해 hosts.allow 또는 hosts.deny 파일을 참고해 호스트들에 대해 한 번 필터링이 됩니다. 그다음 /etc/xinetd.d/.. 더보기
[C언어] 1차원 배열 (1) 1차원 배열 (1) 안녕하세요 지토우에요.자료구조 공부하기 전에,먼저 배열에 대해 더 알아보면 좋을 것 같아서씨언어 메뉴도 만들고 새로 글도 썼습니다 ㅎㅎ오늘도 행복한 하루 되세요 ^^ 1. 1차원 배열이란 배열의 간단한 특징들은 다음과 같습니다. * 같은 자료형을 가진 연속된 메모리 공간으로 이루어진 자료구조* 같은 자료형을 가진 변수들이 여러 개 필요할 때 사용* 많은 양의 데이터를 처리할 때 유용 이렇게 활자로만 보면 사실 감이 잘 안오실겁니다.예시를 들어볼게요. name이라는 이름을 가진 변수를 선언해야 한다고 합시다.배열을 모른다는 가정하에, 우리는 다음과 같이 선언하게 됩니다. name1, name2, ... , name10 이런 식으로 하나하나 변수를 언제 다 선언하는 것은 번거로운 일이지요.. 더보기
[자료구조] 배열 [자료구조] 배열 안녕하세요. 지토우에요. 오늘은 자료구조에서도 배열에 대해 알아볼까요? 사실 배열(array)은 거의 모든 프로그래밍 언어에서 기본적으로 제공되는 데이터 타입입니다. C언어를 배우신 분은 거기서도 배우셨을거에요. 1. 배열의 개념 배열(array)을 사용하면 인덱스(index) 번호를 기준으로 작업을 할 수 있기 때문에 인덱스 번호에 따라 효율적으로 루프를 설정해 여러 상황에서 간단한 코드를 이용해 결과를 나타낼 수 있습니다. 즉, 효율적으로 프로그램을 작성할 수 있다는 것이지요. 또, 배열의 가장 기본적인 특징은 배열은 쌍의 집합이라는 것인데요. 인덱스가 주어지면 해당하는 요소(element)가 대응되는 자료 구조입니다. 배열에서는 인덱스를 사용해 요소에 직접 접근합니다. 우리는 앞서.. 더보기