컴퓨터 구조
-
C - Pointer컴퓨터 구조 2021. 1. 8. 13:03
Pointer 아래의 코드는 a와 b를 swap하는 함수를 흉내낸 코드이다. 분명 문제가 없어 보이지만, 실제로 프로그램을 실행 시켜보면, a와 b의 값이 바뀌지 않았음을 알 수 있다. #include #include void swap(int* x, int* y); int main() { int a = 123; int b = 321; printf("%d %d\n", a, b); swap(&a, &b); printf("%d %d\n", a, b); return 0; } void swap(int* x, int* y) { int tmp = *x; *x = *y; *y = tmp; } //output 123 321 123 321 왜 바뀌지 않았을까?! 위의 그림과 같이 메모리의 code segment, data..
-
./Missing Semester - 셸(Shell) 스크립팅컴퓨터 구조 2021. 1. 5. 22:45
./Missing Semester 연습문제 사이즈는 사람이 읽을 수 있을 법한 형식으로 (e.g. 454M instead of 454279954) 최신순 파일 정렬 색상화 되어 출력 [man ls] (https://www.man7.org/linux/man-pages/man1/ls.1.html)를 읽고 다음과 같은 방식으로 파일을 나열하는ls 명령을 작성합니다. l - 자세히 출력 h - 사람이 읽을 수 있을 법한 형식으로 출력 a - 숨겨진 파일까지 모두 출력 t - 시간순으로 출력 ls -lhat --color 다음을 수행하는 bash 함수marco 및polo를 작성합니다. marco를 실행할 때마다 현재 작업 디렉토리가 어떤 방식으로 저장되어야합니다. 그러면polo를 실행할 때 어떤 디렉토리에 있든 ..
-
./Missing Semester - 수업 개요 + shell컴퓨터 구조 2021. 1. 4. 00:43
./Missing Semester 2021 - 01 - 04 를 시작으로 매일 강의 한 개씩 수강해 나갈 예정이다. 1년 전 ROS, Autoware를 설치하고 사용해보며 처음 Linux, Shell을 접했는데, 이번 기회를 통해 기초를 탄탄히 해볼 계획이다. 꾸준히 수강하자! 연습문제 /tmp에 missing이라는 새로운 경로를 만들어 보세요 . touch라는 프로그램을 관찰해보세요. man 프로그램이 도움이 될겁니다. Description: Update the access and modification times of each FILE to the current time. A FILE argument that does not exist is created empty, unless -c or -h is..
-
[컴퓨터 시스템] 1. 프로그램이 실행되는 과정컴퓨터 구조 2020. 12. 29. 01:53
프로그램은 다른 프로그램에 의해 다른 형태로 번역된다. hello 프로그램이 실행되고, hello를 출력하기 까지 어떤 과정을 거치는지 알아보자. hello 프로그램은 우리가 이해할 수 있는 형태의 고급 C 프로그램으로 일생을 시작한다. 하지만, 이 프로그램이 시스템에서 실행되려면, 저급 기계어 인스트럭션(명령어 집합)들로 번역되어야 한다. linux> gcc -o hello hello.c GCC 컴파일러 드라이버는 소스파일 hello.c를 읽어서 실행파일인 hello로 번역한다. 이 과정은 Pre-processor, Compiler, Assembler 그리고 Linker를 통해 일어난다. 이들을 합쳐서 컴파일 시스템이라고 부른다. Preprocessor Preprocessor는 본래의 C 프로그램을 #..