| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- kernel
- px4
- 알고리즘
- Leviathan
- 시스템프로그래밍
- 취약점
- 어셈블리어
- 워게임
- wargame
- 시스템해킹
- 리눅스커널
- Pwnable.kr
- 시그널
- 프로그래밍
- Bandit
- css
- pwncollege
- write up
- pwn.college
- 리버싱
- 시스템
- C언어
- 드론
- C++
- radare2
- 리눅스
- 컴퓨터구조
- 시스템 프로그래밍
- 리눅스 커널
- 커널
- Today
- Total
목록Thread (2)
Computer Security
main함수를 해서 프로세스가 시작이되면 기본적으로 하나의쓰레드가 동작하게 된다. 두개의 쓰레드를 더 생성해서 생성한 두개의 쓰레드는 공유자원을 가지고 pthread_mutex 를 이용해서 동기화를 통해 공유자원의 접근을 하도록 하고, main함수를 시작한 원래 있었던 쓰레드는 기다렸다가 조인을 하고 마친 뒤, 프로그램을 종료하는 예제를 작성해보자. 1. 기본 뼈대를 만든다. 2. pthread_create() API를 이용해서 쓰레드를 생성한다. #include int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg); i) pthread_t 자료형에 child_t..
Program 실행 가능한 코드, 바이너리, 파일로 저장 Process 실행 중인 프로그램 프로그램 이미지,메모리 인스턴스, 커널 리소스 등의 정보 Thread 프로세스 내의 실행 단위 가상화 된 프로세서, 스택, 레지스터, 명령어 포인터 등 프로세서의 상태 포함한다. 프로세스 내의 모든 쓰레드는 같은 주소 공간을 공유 Process in memory text : compile 된 프로그램 코드 data : 전역 변수 등 heap : 동적 메모리 영역 stack : 함수 지역 변수, 함수 호출/리턴 Single-thread vs Multi-thread Muti-thread 하나의 thread가 registers와 stack을 따로 가지고 있다. code , data, files 같이 공유한다. Proce..