(sp-Chapter1-v3)
Example of buffer overflows)
간단한 암호 맞는지 여부 맞추는 프로그램을 예시로 듬
(wsl 실습이용)
(사용파일)
checkpass.c | checkpasstest.c
(사용파일 결과)
Chaper2 Programs, Processes and Threads
Program | a prepared sequence of instructions to accomplish a defined task | |
Process | when the os has added the appropriate information in the kernel data structures and has allocated the necessary resources to run the program code, the program becoms a process a process has an address space and at least one flow of control called a thread |
|
Thread of execution (실행의 흐름) | The stream of instructions Represented by the sequence of instruction addresses assigned to the program counter |
program counter : to determine which process instruction es executed next (다음에 실행될 프로그램을 결정) |
multiple processes vs. multiple threads |
Example of Thread of execution)
"스택" 공간은 스레드마다 별도로 가지게 됨
스레드를 실행하는 직접적인 부분
장단점 : 스레드끼리 서로 공유하는 메모리가 있음.(별도의 작업이 없이) - heap부터 아래 공간까지
(프로세스끼리는 메모리를 공유x
공유하려면 시스템 콜을 써서 공유)
program image | a contiquous block of logical memory occupied by the program executable has several distinct sections |
|
Error handling functions | void perror(const char *s) char* strerror(int errnum) |
|
argument arrays)
strtok )
char * strtok(char* str, const char* delim);
str = "a b c"
'b' = strtok(NULL, " ");
1.strtok( , )
2.strtok( , ) =>충돌 문제
(다시 정리)
char * strtok(char* str, const char* delim , char** lasts);
lasts = a user-provided pointer to a location that strtok_r uses to store the startinn address for the next parse.
'2023 2학기 > 리눅스' 카테고리의 다른 글
[리눅스] 예제 파일 정리 및 개념 간단 정리 (fork,sleep,wait,exec,exit,Unix I/O) (0) | 2023.10.12 |
---|---|
[리눅스] system 함수 - sleep, wait (1) | 2023.10.02 |
[리눅스] Chapter1: Technology's Impact on Programs (1) (0) | 2023.09.16 |
[리눅스] 기초 명령어2-2 <redirection & pipe> <grep> <gcc> (0) | 2023.09.04 |
[리눅스] 기초 명령어2-1 <chmod> <ps> <kill> (0) | 2023.09.04 |