일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 | 31 |
- SpringBoot 2
- scanner
- input
- array
- Easy
- 사칙연산
- 카데인 알고리즘
- JAVA11
- 자바입력
- hash table
- Kadane's Algorithm
- 자바 스레드 실행 순서 제어
- R
- 수학
- 자바 thread 실행 순서 제어
- heroku
- Today
- Total
목록OS (11)
DeFacto-Standard IT
참고 URL : http://www.koreaoug.org/dbms/2039 *root계정으로 실행 0. mysql 설치 및 버전 확인 1) "mysql --version" 2) "rpm -qa | grep ^mysql-server" 1. MySQL 사이드에서 Yum Repository를 사용한 설치를 위해 yum repository package 다운로드. 1) "wget http://dev.mysql.com/get/mysql57-community-release-el6-11.noarch.rpm" 2. package 설치 1) "yum localinstall mysql57-community-release-el6-11.noarch.rpm" 3. mysql yum repository 활성화 1) " yum ..
*참고 URL : http://luckyyowu.tistory.com/124 *root 계정으로 실행 *사전에 JDK가 설치되어 있어야 한다. 1. JDK 설치 시 생성했던 /usr/local/src/tomcat 디렉토리로 이동 "cd /usr/local/src/tomcat" 2. Tomcat 설치파일 다운로드 "wget 다운로드링크" *참고 다운로드링크를 따오는 법은 이전 포스팅(리눅스 JDK설치) 참조. JDK와 마찬가지로 .tar.gz파일을 받아 진행 3. 압축해제 "gunzip 파일명" "tar 파일명" 압축 해제 시 apache-tomcat-8.0.5라는 디렉토리 생성 4. 디렉터리 이전 후 심볼릭 링크 파일 생성 1) "mkdir /usr/local/server" 2) "mv apache-to..
* 참고 URL : http://luckyyowu.tistory.com/122 * root계정으로 진행 *이후 tomcat 설치와 연동된다. 1. jdk 설치 여부 확인 1) "javac -version" 설치된 경우 : 'javac 버전' 출력 설치안된 경우 : 'javac command not found' 출력 2. jdk/톰캣 설치 폴더 결정 및 폴더 생성 1) "cd /usr/local/src" 2) "mkdir tomcat" /usr/local/src/tomcat 에 jdk, tomcat을 모두 설치할 것이다. 3. jdk 설치파일 다운로드 1) "wget 다운로드링크" *참고 윈도우에서 ssh를 이용하여 복사하는 경우, 윈도우에서 복사하고 ssh 상에서 오른쪽 마우스를 클릭하거나, shift ..
iptables는 외부에서 서버로 접근을 허용하거나, 서버에서 접속을 할 수 없게 하는 등 , OS의 포트를 제어하는데 주로 사용된다. - 현재 시스템 상에서 열려있는 포트를 확인하는 명령어 "netstat -anl | grep 포트번호" - iptables 설정파일 경로 "/etc/sysconfig/iptables" - iptables 규칙 저장 명령어 "service iptables save" - iptables 서비스 재실행 명령어 "service iptables restart" 혹은 "/etc/init.d/iptables restart" - iptables 옵션 -A Append, 체인 추가 설정 (INPUT, OUTPUT) -s Source, 출발지 주소 -d Destination, 목적지 주소..
장점 : 두 가지 이상의 작업을 동시에 실행하므로 자원을 효율적으로 이용 단점 : Dead lock 및 동기화에 대한 철저한 검증이 필요하다.
- 연속 메모리 할당 : 고정 분할, 가변 분할(동적 분할) - 비연속 메모리 할당 : 페이징, 세그먼트, 페이지화 세그먼트 연속 메모리 할당의 단편화의 문제를 최소화하기 위해 비연속(분산) 메모리 할당 개념이 나옴. 처리할 작업을 동일한 고정 크기의 페이지로 나누어 처리. 메모리 역시도 페이지 프레임이라는, 페이지와 동일한 고정된 크기 단위로 분할한다. 전체 용량에 페이지가 모두 들어가면 딱 맞는 사이즈이기 때문에 외부 단편화가 발생하지 않음. 만약 1바이트라도 모자른 경우 프레임 하나가 더 할당이 되기 때문에 내부 단편화는 존재한다. 이는 페이지의 크기를 조절하여 낭비를 줄일 수 있으나 페이지는 테이블에 의해 관리되고 크기가 작아진다면 페이지 테이블이 늘어나므로 적당한 크기로 조절하여야 한다. 장점 ..
프로세서를 실행시키기 위해 메모리를 할당, 해제하는 과정에서 나타나는 현상. 내부단편화와 외부단편화가 있다. 내부단편화 : 프로세스에 할당된 메모리의 크기가, 프로세스가 요구하는 양보다 많아서 남는 상태. 실질적으로 쓰이지는 않지만 이미 할당되어 다른 프로세스가 사용 못해 공간이 낭비되는 상태. 외부단편화 : 메모리가 프로세스가 할당이 되지 않은 상태라 사용 가능한 상태이지만, 그 크기가 너무 작아서 실질적으로 이를 사용할 수 있는 프로세스가 없는 경우. 할당기법에 따른 단편화 발생 여부 연속 메모리 할당기법 비연속 메모리 할당기법 내부단편화 고정분할 가변분할(동적분할) 페이징 세그먼트 외부단편화 O X O X O X O 설명 내부단편화 메모리를 일정한 크기로 할당하므로 보통 프로세스가 요구하는 메모리보..
요즘 PC환경은 대부분 멀티프로그래밍 환경. 멀티프로그래밍은 여러 개의 프로세스를 수행하는 것. 사실 순차적으로 돌아가면서 조금씩 수행되나 속도가 빠르므로 동시에 프로세스를 처리하는 것처럼 보인다. 여기서 현재 프로세스를 다른 프로세스로 교환한다는 것은, 이전 프로세스의 상태 레지스터 내용을 보관하고 다른 프로세스의 레지스터를 적재하는 일련의 과정을 Context Switching이라고 한다. 프로세스가 ‘준비->실행’, ‘실행->준비’, ‘실행->대기’ 상대로 변할 때 발생한다. PCB(Process Control Block)라는, 프로세스를 관리하기 위해 유지되는 데이터 블록 구조를 사용한다. 실행중인 프로세스의 내용을 PCB에 저장하고, 다음에 실행할 프로세스에 대한 내용을 PCB로부터 얻어와 CP..
한정된 자원을 여러 프로세스가 동시에 사용하려고 할 때, 자원을 얻지 못하고 상대의 작업이 끝나기만을 기다리는 상태. 4가지 조건이 모두 성립해야 발생하며, 해결하려면 하나라도 성립하지 않도록 하면 해결할 수 있다. - 상호 배제(Mutual Exclusion) : 자원은 한 번에 한 프로세스만 사용 가능 - 점유 대기(Hold and Wait) : 최소한 하나의 자원을 점유하고 있으면서, 다른 프로세스에 할당되어 사용되고 있는 자원을 추가로 점유하기 위해 대기하는 프로세스가 있어야 함 - 비선점 (No Preemption) : 다른 프로세스에 할당된 자원은 사용이 끝날 때 까지 강제로 빼앗을 수 없다. - 순환 대기(Circular Wait) : 프로세스의 집합 P0...Pn에서 p(n-1)은 pn이 ..
Thread Process - 프로세스 내에 존재 - 하나의 프로그램 내에서 실행 단위 - 메모리를 공유해서 사용할 수 있다.(프로세스 내에서 공유) - 쓰레드간 전환 속도가 프로세스간 전환 속도보다 빠름 - 완전한 병렬 처리가 아니면 때로는 동기화 하여야 하고, 이럴 경우 개발이 복잡해짐 - OS내에 존재 - 레지스터, 스택, 포인터 등을 가짐 - 실행중인 프로그램 - 각각 별개의 메모리 공간을 가짐.공유를 위해서는 IPC(Inter Process Communication)과 같은 방식이 필요 - PCB(Process Control Block) 형태로 존재. - 프로세서가 할당하는 개체 - 디스패치가 가능한 대상 - 프로세스간 전환 속도가 쓰레드간 전환 속도보다 느리다