pwnkidhn.github.io

고정 헤더 영역

글 제목

메뉴 레이어

pwnkidhn.github.io

메뉴 리스트

    • 분류 전체보기 (194)
      • memo (0)
      • Pwnable Exploitation (19)
        • 01.Shellcode (4)
        • 02.Return to Shellcode (1)
        • 03.RTL(Return to libc) (2)
        • 04.Frame faking(Fake ebp) (1)
        • 05.Frame Pointer Overwrite (2)
        • 06.ROP(Return Oriented Prog.. (3)
        • 07.SROP(Sigreturn-oriented .. (2)
        • 08.JOP(Jump-Oriented Progra.. (1)
        • 09.Return-to-csu(__libc_csu.. (0)
        • Malloc - glibc(ptmalloc2) (3)
      • Pwnable Write-Up (54)
        • 00.CTF (0)
        • 01.hackerschool F.T.Z (20)
        • 02.hackerschool L.O.B (21)
        • 03.dreamHack (13)
        • 04.HackCTF (0)
      • Reversing Write-Up (38)
        • 01.Abex's crackme (5)
        • 02.CodeEngn Basic (20)
        • 03.CodeEngn Advance (13)
      • Fuzzing (1)
        • Theory (1)
      • Programming (22)
        • Data Structure (0)
        • Windows System (22)
      • Computer Science (60)
        • Computer Architecture (18)
        • OS Concepts (29)
        • Linux System (5)
        • Reverse Core (8)

    검색 레이어

    pwnkidhn.github.io

    검색 영역

    컨텐츠 검색

    Computer Science/OS Concepts

    • 4.5 묵시적 쓰레딩

      2020.04.30 by RACC8N

    • 4.4 Thread 라이브러리

      2020.04.30 by RACC8N

    • 4.3 다중 쓰레드 모델

      2020.04.30 by RACC8N

    • 4.2 멀티코어 프로그래밍

      2020.04.30 by RACC8N

    • 4.1 쓰레드 개요

      2020.04.24 by RACC8N

    • 3.6 클라이언트-서버 시스템에서의통신

      2020.04.24 by RACC8N

    • 3.5 IPC 시스템사례

      2020.04.24 by RACC8N

    • 3.4 프로세스간 통신 (Interprocess Communication)

      2020.04.24 by RACC8N

    4.5 묵시적 쓰레딩

    묵시적 쓰레딩 (Implicit Threading) - Thread 생성과 관리를 응용 프로그램 개발자가 아닌 compiler와 runtime library에게 넘겨주는 것 - 멀티코어 병렬 처리를 사용하는 프로그램 설계에 사용 컴파일러에서 멀티쓰레딩 지원 - Open MP - GCD (Grand Central Dispatch) 멀티쓰레딩 관리 방법 - Thread Pool Thread Pools Multithreaded server에서의 잠재적 문제점 - thread 생성 오버헤드 : 요청마다 thread를 생성하는 데 시간이 소요됨 - thread 수가 증가에 따른 자원 고갈 가능성 -> thread 수에 제한이 필요 해결책 -> Thread pool - 프로세스를 시작할 때에 일정한 수의 threa..

    Computer Science/OS Concepts 2020. 4. 30. 21:55

    4.4 Thread 라이브러리

    Thread 라이브러리 - thread를 생성하고 관리하기 위한 API 제공 Thread 라이브러리 구현 - user-level library : 완전히 user space에서 구현 > library 함수 호출은 user space에서의 함수 호출로 이어짐 - kernel-level library : library의 코드와 데이터가 kernel space에 존재 > library 함수 호출은 커널에 대한 system call 호출로 이어짐 주로 사용되는 3가지 Thread Libraries 1. POSIX Pthread : user or kernel -level library 2. Windows Thread : kernel-level library 3. Java Thread : Java thread AP..

    Computer Science/OS Concepts 2020. 4. 30. 21:27

    4.3 다중 쓰레드 모델

    User threads : 커널 지원 없이 사용자 수준 (커널 위)에서 thread library에 의해서 지원됨 Kernel threads : OS 커널에서 직접 지원되고 관리됨 Many-to-One 모델 - 다수의 User-level thread가 한 개의 Kernel thread에 연관 - thread 스케줄링과 동기화가 사용자 공간의 thread library에서 수행 - 장점 : > context 스위칭과 동기화 overhead가 작아서 효율적 - 단점 : > 한 thread가 blocking system call을 호출하여 block되면 전체 process가 block됨 (커널이 user-level thread의 존재를 알지 못함) > Multiprocessor 시스템에서 thread들의 병렬..

    Computer Science/OS Concepts 2020. 4. 30. 21:17

    4.2 멀티코어 프로그래밍

    단일 코어 시스템에서의 병행 (concurrent) 실행 멀티 코어 시스템에서의 병렬 (parallel) 실행 병렬(Parallel)과 병행(Concurrency) 병렬 실행과 병행 실행의 구분 - 병렬 시스템 (parallel system)은 동시에 1개 이상의 작업 수행 - 병행 시스템 (concurrent system)은 1개 이상의 task를 지원하여 모든 작업이 진행되게 함 (순서대로) Amdahl's Law - N개의 프로세서를 사용하여 얻을 수 있는 가능한 성능 이득 병렬 실행 (parallelism)의 유형 - data parallel : 데이터의 부분 집합에 대해서 동일 연산 수행 - task parallel : 각 프로세서마다 고유 연산 수행 > 대부분 두 병렬 실행 방법이 혼용된다.

    Computer Science/OS Concepts 2020. 4. 30. 20:57

    4.1 쓰레드 개요

    쓰레드(Thread) - CPU이용의 기본 실행 단위 단일 쓰레드 (Single threaded) Processes - 전통적인 프로세스 - 한 개의 실행 단위로 구성 다중 쓰레드 (Multithreaded) Process - 여러 개의 실행 쓰레드를 갖는 프로세스 > 한 프로세스가 동시에 하나 이상의 작업 수행 가능 - 전통적인 프로세스의 확장 Thread 사용 자원 - 같은 프로세서에 속한 다른 Thread들과 (Code, Data, OS자원(open file, signal) 들을 공유함 - stack, CPU register 저장공간은 thread 전용공간 사용 Thread Control Block (TCB) - 쓰레드에 대한 정보를 보관 (프로세스의 PCB와 유사) > thread ID > thr..

    Computer Science/OS Concepts 2020. 4. 24. 14:53

    3.6 클라이언트-서버 시스템에서의통신

    1. 소켓(Sockets) 2. 원격 프로시저 호출(Remote Procedure Calls) 3. 파이프(Pipes) Sockets - 응용 프로그램 간에 통신이 연결되는 종단점(endpoint) - IP주소와 포트번호에 의해서 식별됨 > IP 주소는 시스템을 가리킴 > 포트 번호는 해당 시스템의 프로세스와 연결됨 Remote Procedure Calls (RPC) - 네트워크에 연결되어 있는 시스템의 프로세스들 간에 Procedure calls를 추상화한 것으로 IPC 기반으로 구현됨 Stubs - 서버의 Procedure에 대한 원격 호출을 대행해주는 Procedure (proxy) ※ XDR : 데이터를 저장하는 컴퓨터 구조의 차이를 해결하기 위한 중립적인 자료 표현 중 하나. - Clien st..

    Computer Science/OS Concepts 2020. 4. 24. 14:31

    3.5 IPC 시스템사례

    POSIX - Shared Memory IPC segment id = shmget(IPC_PRIVATE,size,S_IRUSR | S_IWUSR); // 공유 메모리 세그먼트 생성, id 반환 shared_memory = (char*) shmat(id,NULL,0); //id가 지정하는 공유 메모리를 프로세스에 연결(attach) sprintf(shared_memory,"Writing to shared memory"); // 공유 메모리 세그먼트에 읽고,쓰기 shmdt(shared_memory); // 공유 메모리를 프로세스에서 제거(detach) - shm_open() : 공유메모리 객체 생성 - ftrunccate() : 객체의 크기 설정 - mmap() : 공유메모리 객체를 프로세스 메모리 공간 맵..

    Computer Science/OS Concepts 2020. 4. 24. 12:04

    3.4 프로세스간 통신 (Interprocess Communication)

    병행(concurrent) 프로세스의 종류 - 독립(Independent)프로세스 : 다른 프로세스의 실행에 영향을 주거나 받지 않음 - 협력(Cooperating)프로세스 : 다른 프로세스의 실행에 영향을 주거나 받음 프로세스 협력을 허용하는 이유 - 정보 공유 EX) 공유파일 - 계산 가속화 (Computation Speedup) > 작업을 서브 작업으로 나누어 병렬 실행 -모듈성 (Modularity) - 기능 모듈화 - 편의성 (Convenience) > 개별 사용자가 한 번에 여러 작업을 수행함 (편집, 프린트,컴파일을 함께 수행(병렬)) [EXAMPLE] 다중 프로세스구조 - Chrome Browser 단일 프로세스 방식의 웹 브라우저 - 한 웹 사이트가 문제 있으면 전체 브라우저에 영향 Ch..

    Computer Science/OS Concepts 2020. 4. 24. 11:23

    추가 정보

    페이징

    이전
    1 2 3 4
    다음
    TISTORY
    pwnkidhn.github.io © rvkhun
    페이스북 트위터 인스타그램 유투브 메일

    티스토리툴바