분류 전체보기(119)
-
Makefile 기본 문법
GNU Make 매뉴얼 : https://www.gnu.org/software/make/manual/html_node/ 한국어 번역 : http://korea.gnu.org/manual/release/make/make-sjp/make-ko_toc.html Make란 파일 관리 유틸리티. 파일간의 종속관계를 파악하여 Makefile에 적힌 대로 컴파일러에 명령하여 Shell 명령이 순차적으로 실행될 수 있게 한다. Make의 장점 각 파일에 대한 반복적 명령의 자동화로 인한 시간 절약 프로그램의 종속 구조를 빠르게 파악할 수 있으며 관리가 용이 단순 반복 작업 및 재작성을 최소화 Make 옵션 make에서 거의 모든 것은 Makefile 내부에서 지정 가능하다. 그 중 일부는 make 실행시 사용 가능하다..
2021.10.06 -
Windows용 SourceTree에서 Authentication failed 오류
소스트리에서 Fetch를 하니까 아래와 같이 인증 실패 오류가 나왔다. fatal: credential-cache unavailable; no unix socket support 이럴경우 cache에 저장되어있는 비밀번호 정보를 날려주면 된다. 먼저, 소스트리를 종료한 뒤 아래 경로에서 C:\Users\{사용자}\AppData\Local\Atlassian\SourceTree "passwd" 파일을 메모장으로 열면 id@email.com Encrypted password 위와 같이 {이메일 + 암호화된 패스워드} 쌍이 여러 개가 나올텐데 그중에서 인증 실패된 repo server의 내용을 삭제 하고 저장한다. git -c diff.mnemonicprefix=false -c core.quotepath=fal..
2021.05.26 -
Linux lsblk, df 명령어 비교
lsblk (list block) block device 드라이버에 질의해서 그 장치에 할당된 용량을 알아냄 이 용량 중에 얼마만큼이나 사용자가 사용할 수 있을지는 file system 마다 다름 $ lsblk df (disk free) df는 file system 드라이버에 질의해서 사용자가 사용 가능한 남은(free) 용량을 알아냄 $ df
2021.04.28 -
Linux ipcs 명령어
ipcs 시스템에서 사용중인 콜 프로세스의 IPC와 관련된 정보 확인 $ ipcs [옵션] ... 옵션 설명 -i 특정 id에 대한 정보를 확인 -m 공유 메모리 세그먼트를 확인 -q 메시지 큐를 출력 -s 세마포어 배열을 출력 -a 모든 리소스를 출력. -t, -p, -c, -l, -u로 출력 형식 설정 가능 -t 시간 정보를 같이 출력 -p pid 정보를 같이 출력 -c creator 정보를 같이 출력 -l limits 정보를 같이 출력 -u 간추린 정보를 같이 출력
2021.04.28 -
IPC의 종류와 특징
IPC (Inter Process Communication) 프로세스간 통신 프로세스들 간에 데이터 및 정보를 주고받기 위한 메커니즘을 말함 커널에서 IPC를 위한 도구를 제공하며, 시스템 콜 형태로 프로세스에게 제공됨 운영체제 내에서 실행되는 프로세스들은 독립적이거나 협력적인 프로세스일 수 있다. 1. 독립적인 프로세스 (Independent process) 시스템에서 실행중인 다른 프로세스들에게 영향을 주거나 받지 않는 프로세 2. 협력적인 프로세스 (Cooperative process) 시스템에서 실행중인 다른 프로세스들에게 영향을 주거나 받는 프로세스 IPC가 반드시 필요 IPC 종류 1. 공유 메모리 (Shared Memory) 두 개 이상의 프로세스들이 주소 공간의 일부를 공유 공유한 메모리 ..
2021.03.09 -
세마포어와 뮤텍스
세마포어와 뮤텍스 둘 다 상호배제를 해결하기 위한 방법 = 병행처리를 위한 프로세스 동기화 기법 = 여러 프로세스나 쓰레드가 공유 자원에 접근하는 것을 제어하기 위한 방법 세마포어 (Semaphore) 세마포어는 정수값을 갖는 변수이다. 이 정수값이 접근할 수 있는 최대 허용치를 의미하며, 이 값 만큼 동시에 사용자가 접근할 수 있다. semWait 연산 세마포어 값을 감소시킨다. 값이 음수가 되면 semWait를 호출한 프로세스는 블록된다. semSignal 연산 세마포어 값을 증가시킨다. 값이 양수가 아니면 (0 또는 음수이면) semWait 연산에 의해 블록된 프로세스들을 깨운다. struct semaphore { int count; queueType queue; }; void semWait (se..
2021.03.08 -
멀티 프로세스와 멀티 쓰레드의 차이
다중 처리 시스템 (Multi-Processing System) CPU(=프로세스) 가 여러 개 여러 프로세스를 동시에 실행하는 것 프로세스간 통신을 하려면 (IPC:Inter Process Communication; 세마포어, 큐, 공유메모리)를 사용해야한다. 프로세서를 다른 프로세스로 전환하려면 문맥교환(Context Switching)을 해야한다. 문맥교환 (Context Switching) 이전 프로세스의 상태 레지스터의 내용을 보관하고 다음 프로세스의 레지스터들을 적재하는 과정 단순히 CPU 레지스터 교체 뿐 아니라 RAM과 CPU 사이의 캐시 메모리에 대한 데이터 까지 초기화 된다. 문맥교환은 모두 과부하(overhead)가 발생한다. 임계구역 (Critical Section) 둘 이상의 프로..
2021.03.08 -
쓰레드 (Thread)
프로세서를 이용하는 기본 단위 프로그램 명령을 실행하는 프로세스 내의 개체 경량 프로세스라고도 함 명령어를 독립적으로 실행할 수 있는 하나의 제어 흐름 쓰레드는 같은 프로세스(그룹) 내의 쓰레드들과 코드, 주소 공간, 운영체제의 자원인 파일, 신호 등을 공유한다. 이러한 쓰레드의 그룹 환경을 작업이라고 한다. 전형적인 프로세스인 중량 프로세스 (HWP: Heavy Weight ProcesS)는 하나의 쓰레드를 가진 작업을 의미한다. 쓰레드는 자신만의 스택(지역변수), 레지스터를 갖는다. 단일 쓰레드 운영체제 하나의 프로세스에서 하나의 쓰레드가 실행 전통적인 방식 쓰레드의 개념이 불확실함 MS-DOS 다중 쓰레드 운영체제 하나의 프로세스에서 여러 쓰레드의 실행을 지원 각 프로세스는 하나 이상의 쓰레드를 갖..
2021.03.08 -
운영체제 유형별 특징
CPU 주기억장치 프로그램 사용자 특징 일괄 처리 시스템 (Batch Programming System) 1개 1개 1개 1명 다중 프로그래밍 시스템 (Multi-Programming System) 1개 1개 n개 1명 시분할 시스템 (Time Sharing System) 1개 1개 n개 n명 TimeSlice 다중 처리 시스템 (Multi-Processing System) n개 1개 n개 n명 강결합시스템, 공유메모리 사용 분산 처리 시스템 (Distributed Processing System) n개 n개 n개 n명 약결합시스템, 네트워크 사용 1. 일괄 처리 시스템 (Batch Programming System) 입력되는 자료를 일정기간 또는 일정량을 모아 두었다가 한꺼번에 처리하는 방식 CPU와 ..
2021.03.08 -
IntelliJ Cannot resolve symbol ${className}
인텔리J로 프로젝트 빌드하다보면 가끔씩 클래스가 존재함에도 불구하고 빨간 밑줄이 뜨고, 아래와 같은 메시지가 나올 때가 있다. [File] - [Invaliddate Caches / Restart...] - [Invalidate and Restart] 를 눌러서 IntelliJ를 재시작한다.
2021.02.19