Computer(인강)/시스템 프로그래밍(40)
-
시스템 프로그래밍 03 파일 시스템 관련 시스템콜 이해
안녕하세요 bannavi입니다^ㅅ^ 오늘은 파일시스템 관련 시스템콜에 대해 이해해보는 시간을 가져볼게요 바로 시작하겠습니다^ㅅ^ 파일시스템은 운영체제에서 배울 때 이 inode아이노드 구조체가 중요하다고 말씀드렸었습니다. 아이노드 방식은 이 구조체만 제대로 이해하셔도 큰 도움이 되실거라 생각합니다. 프로세스마다 pid가 존재하고, pid별로 상태 데이터를 관리하는 자료구조 pcb가 존재한다. 이와 마찬가지로 파일도 inode라고 하는 unique한 숫자값을 가지고 있고, 이 각각의 inode번호에 대응하는 inode구조체를 가지고 있다. 왼쪽에 있는것들이 inode 구조체이다. 아이노드 구조체 inode구조체 1. Mode : 파일종류, 권한 2. Owner Info : 소유자, 소유그룹 3. Size ..
2021.03.14 -
시스템 프로그래밍 02 mmap 예제 및 활용
안녕하세요 bannavi입니다^ㅅ^ 오늘은 mmap의 예제 및 활용에 대해서 공부해보겠습니다!!! 힘차게, 바로 시작하겠습니다! 메모리의 값이 변경되면 해당 파일에 써주어야 하잖아요? 파일에 업데이트 해줘야하는데, 이를 강제적으로 할수도 있습니다 msync() 파일 처리 성능개선기법 - 메모리에 파일 매핑 # start:mmap()를 통해 리턴받은 메모리 맵의 시작 주소 # length: 동기화를 할 길이. 시작 주소로부터 길이를 지정하면 된다 # flags 1. MS_ASYNC : 비동기방식, 동기화 하라는(Memory -> File) 명령만 내리고 결과에 관계없이 다음 코드 실행(따라서, 동기화가 완료 안된 상태로 다음 코드 실행 가능) 메모리에 있는것을 파일에 업데이트 하라는 명령만 내리고 그다..
2021.03.13 -
시스템 프로그래밍 01. 메모리와 mmap
안녕하세요 bannavi입니다^ㅅ^ 오늘은 시스템 프로그래밍 첫번째 시간입니다 메모리와 mmap에 대해서 공부를 해볼거에요 바로 시작하겠습니다! 메모리와 관련된 주요함수 # heap영역에 동적인 메모리를 생성하는 malloc함수 * 이외에도 메모리를 관리하는 함수는 strcmp/strcpy/memset등이 있습니다 파일처리 성능 개선 기법 mmap 파일의 특정 공간을 메모리의 특정 공간에 매핑을 시켜놓습니다. 이렇게되면 프로세스는 파일을 처리하는것이 아니라 메모리에 있는 데이터를 읽거나 쓰면 되기때문에 프로세스가 메모리를 자주 access해서 처리하게끔 만들어주면 시스템콜, 스케쥴러, 인터럽트도 필요가 없고, DMA, systembus도 필요없기 때문에 성능이 굉장히 올라간다고 볼 수 있습니다. 첫번째 ..
2021.03.12 -
스레드 02 - 기본과 동기화
안녕하세요 bannavi입니다^ㅅ^ 오늘은 지난시간에 이어서 스레드 함수에 대해서 살펴보도록 하겠습니다. 바로 시작하겠습니다. 스레드 디태치 # 해당 스레드가 종료될 경우, 즉시 관련 리소스를 해제(free)한다 - pthread_join을 기다리지 않고, 종료 즉시 리소스를 해제한다 참고. 스레드 디태치와는 달리, 스래드 조인은 pthread_join으로 스레드가 종료가 되면 해당 영역이 없어지고 그다음 이 종료 상태값을 가지고 별도의 처리를 메인스레드에서 추가적으로 할 수 있게끔 하는것이다. 다시 정리! 리소스 측면에서보면 pthread_join스레드조인 : 해당 스레드가 종료하면 해당스레드에 대해 자원도 없어짐. 해당 스레드의 종료 상태값을 가지고 추가 처리 가능. pthread_detach스..
2021.03.12 -
스레드 01 기본
안녕하세요 bannavi입니다^ㅅ^ 오늘은 스레드를 관리하고 생성하는 함수 기본에 대해 살펴보도록 하겠습니다 바로 시작하겠습니다 Pthread스레드란? # thread 표준 API - POSIX 스레드 또는 Pthread(피-스레드)라고 부름 # Pthread API - 저수준 API로 100여개의 함수 제공 - 복잡하지만, 유닉스 시스템 핵심 스레딩 라이브러리 - 다른 스레딩 솔루션도 결국 Pthread를 기반으로 구현되어 있으므로, 익혀둘 가치가 있음 리눅스의 C언어에서는 어떻게 Pthread를 쓸 수 있을까? 1. 헤더 파일에 정의 2. 모든 함수는 pthread_로 시작 3. 크게 두 가지 그룹 1) 스레드 관리: 생성, 종료, 조인, 디태치 함수 등 2) 동기화: 뮤텍스(상호배제)등 동기화 관련..
2021.03.12 -
쉘스크립트 - 04 협업 예제 및 정리
안녕하세요 bannavi입니다^ㅅ^ 오늘은 쉘 스크립트 네번째 마지막 시간이에요 실제 실무에서 사용하는 실무코드를 살펴보고 정리해볼거에요 바로 시작해보겠습니다^ㅅ^ 백업하기와 관련된 쉘 스크립트 주기적으로 백업을 하고 싶을때 많이 쓰이겠죠? 압축 명령 tar # 주요 옵션 # 압축시 주로 사용하는 옵션 # 압축을 풀을 떄 주로 사용하는 옵션 backupfile명으로 압축을해라 tar명령에서 압축된 파일들을 화면에 보여주고 있음 date라는 쉘 명령어 떄문에 파일명이 저런식으로 생긴 것. 파일을 묶기만 하면 tar라고 파일명이 자동으로 생성이 됩니다. 압축까지 되어있으면 .을 더붙입니다. 즉, 파일을 묶고 압축까지 되었다는 의미입니다. 로그 파일 정리하기 정한 정책 디렉토리로 이동을하라. 이 디렉토리로 이..
2021.03.12