이번 포스팅에서는 지난 포스팅에 이어서 시그널에 대해 알아보겠습니다! sigprocmask를 활용해서 프로그램 출력이 0.000 0.000, 1.000 1.000과 같은 수의 쌍이 되도록 코드를 작성해보겠습니다. 이번 예제에서 여러개의 신호를 다룰 예정입니다. 많은 신호를 다루기 위해서는 신호를 집합으로 표시하는 자료 형식이 필요합니다. 이때 우리는 sigset_t라는 자료형을 사용합니다. sigset_t을 이용해서 신호를 block, unblock, pending할 수 있습니다. 이러한 작업을 하기위해 다양한 함수가 있습니다. int sigfillset(sigset_t *set) : set에 리눅스에 있는 모든 시그널이 들어간다. (다루지 못하는 SIGSTOP,SIGKILL은 못들어간다.) int si..
안녕하세요! 오늘은 리눅스의 프로세스에 대해 알아보겠습니다! ! 1. 프로세스의 정의 프로세스란 프로그램이 수행되고 있는 상태를 의미합니다. 따라서 프로그램 != 프로세스 != 프로세서 인거죠. 그럼 각각의 정의를 알아보겠습니다! 프로세스 (Process) : 프로그램이 실행중인 상태 프로그램 (Program) : 어떤 문제를 해결하기 위해 컴퓨터에게 주어지는 처리 방법과 순서를 기술한 일련의 명령문의 집합체 프로세서 (Processor) : 프로그램들이 실행할 수 있도록 해주는 하드웨어 프로세스는 두가지 abstractions있습니다. 혼자 CPU를 독자적으로 수행하는 것 같은 착각 시스템 메모리를 프로그램 혼자 쓰는 것 같은 착각 이러한 현상은 여러개 프로세스를 빠르게 스위칭하고 가상 메모리 시스템에..
지난 포스팅에 이어서 빠르게 시스템 콜 예제 두 개를 더 보겠습니다!! 3. mycp 프로그램 작성 mycp 프로그램은 첫번째 인자로 지정된 파일을 두번째 인자로 지정한 파일로 복사하는 프로그램입니다. mycp source-file dest-file 명령어를 입력했을때 실행되도록 만들어봅시다. 이때, dest-file의 모드는 rw-rw-rw-로 세팅해야합니다. 사용자,그룹,외부인 모두 읽고 쓰는 것만 할 수 있는 모드입니다. #include #include #include #include #include #include #include int main(int argc,char *argv[]){ int fd_read,fd_write; char buffer[BUF_SZ]; if(argc != 3){ pri..
안녕하세요! 오늘은 리눅스에서 중요한 개념인 시스템콜(system call) 관련된 예제를 실습해보겠습니다. 시스템 콜에 대해 아주 간단하게 개념을 한번 보고 예제 시작하겠습니다~! 시스템콜이란 ? 어플리케이션이 커널에 있는 기능들을 사용할 때 system call이 일어납니다. 커널 리눅스 운영체제에서 프로세스 및 애플리케이션 간의 CPU, RAM 공유할 수 있도록 관리해주는 시스템 주변 기기 관리 어플리케이션으로 부터 시스템콜 처리 컴퓨터가 켜졌을 경우 disk로부터 바로 로딩 리눅스는 User Space, Kernel Space 이렇게 두개로 나뉘어져있습니다. 이때 User Space에서 Kernel Space까지 가서 함수를 불러오는 것이 시스템콜입니다! 우리 보통 C언어에서 #include 하잖..
안녕하세요. 오늘은 M1 맥북에 리눅스 가상환경을 설치해보겠습니다. 버전은 20.04를 설치할 예정입니다. 저는 22년 8월에 22.04를 깔려고 시도를 했다가 데스크탑이 제대로 깔리지 않아 좀 고생을 했습니다ㅜ 제가 UTM으로 리눅스를 설치할 당시에는 22 버전이 사소한 오류가 많았습니다ㅜ 그래서 이번 포스팅에서는 20.04에 대해 다뤄보겠습니다. 버전 20.04로 다운받으세요!!! 가상환경 설치하다가 무한루프 되는 이유도 함께 적었으니 혹시 안되는 분은 참고하세요. 1. UTM을 맥북에 설치합니다. https://mac.getutm.app/ UTM Securely run operating systems on your Mac mac.getutm.app 2. linux ubuntu 홈페이지에 가서 ubu..
팀 프로젝트를 하기 위해 개발자는 깃(Git)을 필수적으로 다뤄야한다. 이번 포스팅은 깃을 아예 처음 접하는 분들을 위한 포스팅이다. 필자는 리눅스 터미널에서 진행했다. 먼저, 예제에 들어가기 전에 깃을 사용하기 위해서 깃을 간단히 소개하겠다. 깃(Git)은 쉽게 말해서 타임캡슐이다. 타임캡슐에 과거의 정보를 담아 보관하듯, 깃에 과거의 개발 과정을 담아 보관한다. 깃이 필요한 이유는 과거의 개발 과정을 담는 것에 있다. 코딩을 하다보면 코드를 잘못 건들여서 에러가 나는 경우가 있는데 이 경우에 깃을 활용한다면 에러가 나기 전의 과정으로 되돌아갈 수 있다. 여러 사람들이 함께 깃을 사용하는 경우 효과는 극대화된다. 해당 파일을 수정할때 과거의 기록이 모두 남기 때문에 1. 어떤 사용자가 어느 부분을 수정..
- Total
- Today
- Yesterday
- C++
- nodejs
- 백준
- JS
- AWS
- 해커톤
- 리눅스
- googleapis
- 혼공학습단
- 혼공단 9기
- JavaScript
- 깃 예제
- 스페인
- 백엔드 개발
- 혼공단 SQL
- Process
- MySQL
- 교환학생
- 스페인 교환학생
- 개발일지
- 운영체제
- 자바스크립트
- Linux
- SQL
- 혼공
- 프로젝트
- 공룡책
- 개발
- Signal
- 혼공단
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |