분류 전체보기100 [CS] Process vs Thread 이 문서는 유튜브 '널널한 개발자 TV'님의 강의를 토대로 작성되었습니다. Proces는 연산할 것에 대한 관리의 단위이다. 그 단위는 OS가 관리한다. 연산은 연속적이며, Process에는 흐름이 기본적으로 1개 있다. 한 Process내부에 흐름이 n개 있을 수 있다. 동시에 각자 작용한다. 이때의 흐름을 Thread라고 한다. 이 흐름이 여러개가 되면 Multi-threading OS는 가상 메모리 공간을 프로세스에게 할당한다. Process(작업)는 최소 1개의 Thread 존재 OS는 Virtual Memory(제한된 공간)를 Process에게 할당한다. Process에 속한 모든 Thread는 Process의 Virtual Memory로 공간 제약 된다. Multi-Threading > 동시성.. 2022. 12. 15. [CS] 표준 입출력, File offset & File pointerIO #5 이 포스팅은 한국기술교육대학교 김덕수 교수님의 시스템 프로그래밍 (CSE 232)를 참고하여 작성되었습니다. #1 Handling file offset #include int fseek(FILE *stream,long offset,int whence); long ftell(FILE *stream); void rewind(FILE *stream); int fsetpos(FILE *stream,const fpos_t *pos); int fgetpos(FILE *stream,fpos_t *pos); stream offset : 이동시킬 byte 수 (양수 or 음수) whence : 기준 위치 SEEK_SET, SEEK_CUR, SEEK_END pos : offset을 저장할(or 하고 있는) fpos_t 주.. 2022. 12. 14. [CS] 표준 입출력, Standard IO #4 이 포스팅은 한국기술교육대학교 김덕수 교수님의 시스템 프로그래밍 (CSE 232)를 참고하여 작성되었습니다. 표준 파일 입출력에는 다음 4가지가 있다. (1) Character IO (2) String IO (3) Binary IO (4) Formatted IO 이번 포스팅에서는 (3), (4)에 대해서 다루겠다. 문자인 경우 '아스키 코드' 로 변환되어 저장된다. 파이너리 파일은 메모리에 있는 이진수 데이터가 그대로 저장된다. #1 Binary IO FILE *fopen(const char *filename, const char *mode); 파일을 읽을 때 mode인자에 binary인자를 포함하여 읽으면 된다. Binary IO Read & Write, fread(3), fwrite(3) #inclu.. 2022. 12. 14. [CS] 표준 입출력, Standard IO #3 이 포스팅은 한국기술교육대학교 김덕수 교수님의 시스템 프로그래밍 (CSE 232)를 참고하여 작성되었습니다. 표준 파일 입출력에는 다음 4가지가 있다. (1) Character IO (2) String IO (3) Binary IO (4) Formatted IO 이번 포스팅에서는 (1), (2)에 대해서 다루겠다. #1 Character-based reading, fgetc(3) #include int fgetc(FILE *stream); int getc(FILE *stream); // macro int getchar(void); // = getc(stdin) stream : File operation을 수행할 stream c (character) : 쓰려는 문자 Return : 읽은/기록한 문자 | E.. 2022. 12. 14. [CS] 표준 입출력, Standard IO #2 이 포스팅은 한국기술교육대학교 김덕수 교수님의 시스템 프로그래밍 (CSE 232)를 참고하여 작성되었습니다. Standard IO - 플랫폼에 독립적인 유저 버퍼링 솔루션(user-buffering solution)이다. - File pointer File operation을 관리하는 구조체(FILE)를 가리키는 포인터 내부적으로 file descriptor와 연동(mapping)됨 - Stream 프로그램과 file을 연결하는 통로 Stream of bytes Workflow of file I/O - File open 파일 스트림 생성 및 FILE 구조체에 저장 fopen() - File access (Read / Write) 파일의 내용 읽기 또는 정보 기록 fprintf(), fscanf(), fg.. 2022. 12. 14. [CS] 표준 입출력, Buffered IO #1 이 포스팅은 한국기술교육대학교 김덕수 교수님의 시스템 프로그래밍 (CSE 232)를 참고하여 작성되었습니다. Block - 파일 시스템의 추상화된 개념. 물리적 Disk를 추상. 운영체제 입장에서 file system은 block들의 나열이다. - Block의 크기는 일반적으로 512~8192 bytes (2^n) Sector size < Block size < Page size - Disk (or block device) access의 최소 단위 File IO vs Disk IO - File IO with system call Access in a unit of byte - Disk IO Access in a unit of block 매번 byte단위로 Disk에 접근하는 것은 비효율적이다. Buffe.. 2022. 12. 14. [개발일지] Malloc Lab 동적 메모리 할당의 개념을 학습하고, 가상의 환경에서 동적 메모리 할당을 직접 해보는 프로젝트다. 프로젝트 키워드 🤔 시스템 콜, 데이터 세그먼트, 메모리 단편화, sbrk/mmap 22.12.04 팀원들과 동적 메모리 할당에 대한 팀 스터디 진행. 22.12.05 CS:APP 챕터9에 나와있는 C언어 코드를 공부하면서 코드 작성. 1. 기본 상수와 매크로 선언 1word 2word 규격 설정 자주 사용되는 함수 선언 2. static void *extend_heap(size_t words) 함수 작성 heap 영역 확장하는 함수 선언 3. static void *coalesce(void *bp) 함수 작성 ptr 포인터에 위치한 할당된 블럭 반환(가용 블럭으로 만들기) case 2, PUT(FTRP(b.. 2022. 12. 14. [개발일지] WebServer 만들기 Ubuntu 개발환경에서 웹 서버를 만드는 프로젝트를 진행했다. localhost로 작은 웹 서버를 만들어서 클라이언트의 요청에 응답하는 단순한 서버다. CS:APP 11장을 따라하며 진행한 프로젝트다. 가이드라인을 따라가면 되기 때문에 큰 어려움은 없었다. 프로젝트 키워드 🤔 BSD소켓, IP, TCP, HTTP, file descriptor, DNS 해당 프로젝트를 진행하기 앞서, 네트워크와 파일입출력에 대한 이론공부를 진행했다 (TIL에 기록하며 학습했다) 22.12.08 - 22.12.11 - 네트워크 이론 학습 (라우터, TCP/IP, HTTP 트랜잭션) 22.12.12 - 동료 학습 22.12.13 - 에코서버 개발 및 작동원리 학습 - tiny.c 개발 및 파일 입출력 학습 22.12.14 .. 2022. 12. 14. [WEEK 07] 크래프톤 정글 1기 WIL - Weekly I Learned 크래프톤 정글에서의 일주일간 성장일지입니다. 매주 주말 업데이트 예정이며, 앞으로도 잘 부탁드립니다. WIL은 에세이 형태로 진행되며 기술적인 내용이 전무합니다. Malloc lab, 블리자드 게임을 좋아하는 사람이라면, 한 번쯤은 멀록이라는 귀여운 친구를 봤을 것이다. 필자는 하스스톤과 wow라는 게임을 하지 않지만 멀록이라는 캐릭터의 이미지를 상상할 수 있다. 메이플스토리 주황 버섯과 같은 포지션일까... malloc이란, c언어에서 프로그램의 런타임 중에 메모리를 할당하는 함수이다. 해당 메모리는 힙 영역에 할당되며, 관리하지 못하게되면 메모리 누수가 발생한다. 즉, c언어 프로그래밍에서 모르고 싶어도 알아야하는 마스코트 같은 함수다. 어디까지 알아야 하죠?.. 2022. 12. 13. 이전 1 ··· 4 5 6 7 8 9 10 ··· 12 다음