전체 글 150

[정리] 05 프로세스 동기화

목차 1. 프로세스 간 통신 2. 공유 자원과 임계구역 3. 임계구역 해결 방법 4. 파일, 파이프, 소켓 프로그래밍 1. 프로세스 간 통신 - 독립적인 프로세스끼리 작업을 하다 서로 데이터를 주고 받아야 할때, 통신을 사용한다. 프로세스 내부 데이터 통신 - 하나의 프로세스 내에서 2개 이상의 스레드가 존재하는경우, [전역변수] or [파일]을 이용 프로세스 간 데이터 통신 - 같은 컴퓨터에 있는 여러 프로세스 끼리 통신하는경우, [공용파일] or [운영체제 파이프라인]을 이용 네트워크를 이용한 데이터 통신 - 여러 컴퓨터가 네트워크로 연결되어 있을때, [소켓]을 이용 1.1 프로스세 간 통신의 분류 - 프로세스 간 통신은 동시에 실행되는 프로세스끼리 데이터를 주고 받은 작업을 의미. - 데이터가 전송..

[정리] 04 CPU 스케줄링

목차 1. 스케줄링의 개요 2. 스케줄링 시 고려사항 3. 다중 큐 4. 스케줄링 알고리즘 5. 인터럽트 처리 1. 스케줄링의 개요 - CPU스케줄러는 프로세스가 생성된후 종료 될때 까지의 모든 상태 변화를 조정하는 일을 담당한다. ( 여러 프로세스의 상황을 고려하여, CPU와 시스템 자원을 배정할지에 대한 결정권을 가지고 있다.) 1.1 스케줄링의 단계 - CPU 스케줄링은, 규모에 따라 고수준/중간수준/저수준 스케줄링으로 구분됨. 1) 고수준 스케줄링 ( 승인 스케줄링 ) - 시스템내의 전체 작업수를 조절하는 역할. - 어떤 작업을 시스템이 승인할지, 거부할지 결정권자. 2) 중간 수준 스케줄링 - 프로세스가 승인이 되어 활성화가 되더라도 여러가지 상황으로 시스템에 과부화가 걸릴수 있다. 그럴때 중간..

[정리] 03 프로세스와 스레드

목차 1. 프로세스의 개요 2. 프로세스 제어 블록과 문맥 교환 3. 프로세스의 연산 4. 스레드 1. 프로세스의 개요 1.1 프로세스의 개념 - 프로세스는 하나의 작업단위이다. > 폰노이만 구조에서 프로그램이 실행된다는것은 해당 코드가 메모리에 올라갔다는 의미. (프로그램은 저장장치에 저장되어 있는 정적인상태, 프로세스는 실행을 위해 메모리에 올라온 동적인 상태.) (누군가 작성한 프로그램이 실행되면 프로세스가 되는것이다.) 1.2 프로그램에서 프로세스로의 전환 - 프로세스는 컴퓨터 시스템의 작업 단위로 태스크(task) 라고도 부른다. 1) 운영체제가 프로그램을 메모리의 적당한 위치로 가져온다. 2) 위의 동작과 동시에 프로세스 제어블록을 생성한다. 3) 프로세스 제어 블록을 운영체제가 받으면, 프로..

[정리] 02 컴퓨터의 구조와 성능 향상

목차 1. 컴퓨터의 기본 구성 2. CPU와 메모리 3. 컴퓨터 성능 향상 기술 4. 병렬 처리 1) 컴퓨터의 기본 구성 1.1) 하드웨어의 구성 - 컴퓨터는 CPU, 메인메모리, 입력장치, 출력장치, 저장장치로 구성 되어 있다. ( 컴퓨터의 작업 대부분은, CPU와 메인메모리의 협업으로 이루어진다. 메인 메모리는 전력이 끊기면 데이터를 잃어버리기 때문에 데이터를 영구히 저장할 하드 디스크(HDD, SDD) 등 장비 추가 사용) 1.2) CPU와 메모리 - CPU는 명령어를 해석하여 실행하는 장치. 인간의 두뇌와 같은 역할. - 메모리는 작업에 필요한 프로그램과 데이터를 저장하는 장소. 1.3) 메인보드 - 메인보드는 CPU와 메모리등 다양한 부품을 연결하는 커다란판. ( 컴퓨터도 일정한 규칙에 따라 ..

[정리] 01 운영체제의 개요

목차 1. 운영체제 소개 2. 운영체제 역사 3. 운영체제 구조 1. 운영체제 소개 대표적인 운영 체제로는 윈도우 , MAC OS, 유닉스 , 리눅스 등이 있다.. 이중 유닉스에 대해 집중적으로 알아볼 예정이다. 임베디드 운영체제 - 이 운영체제는 CPU 성능이 낮고 메모리 크기가 작은 시스템에 내장되도록 만든 운영체제이다. * 운영체제가 있고 없는 시스템의 차이로는 운영체제가 있는 시스템은 기능을 추가하거나 성능 향상을 꾀할수 있고, 없는 시스템은 그냥 최초에 만들었던 그 상태에서 변경하지 못한다. 1.1 운영체제의 정의 한마디로 정의하자면 사용자에게 편리한 인터페이스 환경을 제공하고 컴퓨터 시스템의 자원을 효율적으로 관리하는 소프트 웨어 이다. * 키보드나,마우스, 스피커 이런 하드웨어 장비들은 운..

[Database] mac 환경 H2 사용법 정리

목차 1. h2 DB란 무엇인가? 2. mac os 환경에서 h2 사용해보기 ( mac - m1 칩) 3. java spring boot 에서 h2 연결 해보기 1. h2 란 무엇인가? - h2는 가벼운 데이터베이스이다. ?????????????????? 무슨말이지 이게? RDB의 경우 오라클,mysql,maria 등등 많은 데이터베이스가 있다. 한번 설치해보신분들이라면, 설치하는게 어렵진 않겠지만 생각보다 설치하고 환경설정잡고 등등등... 귀찮고 오래걸린다. 그래서 나온게 h2 DB이다. mode 설정으로 여러 데이터베이스를 가볍게 사용할수있다. 2. mac 환경(m1칩)에서 h2 사용해보기. [DB생성과 실행 시나리오] 일단 h2를 설치하고 압축을 해제하고 /h2/bin/h2.sh 경로에 있는 h2...

[Linux] winodw > linux 파일 이동

local 환경(window)에서, 업무망(linux) 환경으로 파일을 옮겨야할 경우가 있었다. 간단하게 정리해보겠다. [Winodw 시스템에서 linux로 파일 이동 시나리오] 1. 일단 local(window)환경에서, cmd를 켜준다. scp [옵션] (보낼파일 윈도우 경로 + 파일) 리눅스계정@서버주소:(전송되어 저장될 리눅스 경로) ex) scp C:\eclipsePrj\Servers\test.txt root@1.123.123.1:/root 기본 포트인 22번말고 다른포트를 사용할경우 -P 옵션을 사용해 포트를 지정하면된다. ex) scp -P 9999 C:\eclipsePrj\Servers\test.txt root@1.123.123.1:/root 위의 명령어를 입력하면 원격 서버의 패스워드를 ..

OS/Windows 2022.06.20

[Java] Equlas 와 hascode를 재정의하는 이유

목차 1. Equlas 란? 2. Hashcode 란? 3. 그래서 어떤상황에서 같이 재정의를 해야하는가? 1. Equals란 ? 객체는 기본적으로, 오버라이딩을 해서 재정의 하지않으면 Object의 equals의 메소드를 사용한다. Object의 equals 내부를 보면 ==로 비교하는데 ==는 객체의 주소 값 자체를 비교하는것이다. 무엇이 나올것 같은가? 정답은 false가 나온다. 객체의 주소값은 당연히 new로 생성 했기 때문에 서로 다른게 정상이지만, 논리적으로 생각해보자. 위의 코드에선 홍길동이란 사람과 휴대전화번호가 두개가 같다. 그럼 현실 세계에선 두명의 사람일까? 휴대전화는 중복될수없는 고유정보인데? 우리는 논리적으로 같은 객체라고 판단하기위에 객체에 equals를 재정의해보자. 오버라이..

JAVA 2022.05.28

[자료구조] Linked List란 어떤 자료구조인가?

Linked List란 어떤 자료구조인가? Linked List는 Node라는 구조체로 이루어져 있는데, Node는 데이터 값과 다음 Node의 address를 저장한다. Linked List는 물리적인 메모리상에서 비연속적으로 저장이 되지만, Linked List를 구성하는 각각의 Node가 next node의 address를 가리킴으로써, 논리적인 연속성을 가진 자료구조이다. * 메모리상에서 불연속적으로 데이터가 저장되는점과 node의 next address를 통해 불연속적인 데이터를 연결하여 논리적 연속성을 보장한다는 점. , 또한 데이터가 추가되는 시점에서 메모리를 할당하기때문에 메모리를 효율적으로 사용할수 있는 장점 논리적 연속성 각 Node들은 next address 정보를 가지고 있기때문에,..

카테고리 없음 2022.03.27

[자료구조] Dynamic Array는 어떤 자료 구조인가?

Dynamic Array는 어떤 자료구조 인가? Dynamic Array는 Array의 특징중 fixed - size의 한계를 보완하고자 고안된 자료구조 이다. Array의 자료구조는 할당시 선언한 size보다 많은개수의 data를 추가하면 저장할수 없으나, Array의 단점을 보완한 Dynamic Array는 저장공간이 가득 차게되면, resize를 통해 유동적으로 size를 조절하여 데이터를 저장하는방식이다. ( 이로써 미리 size를 고민할 필요가 없다는 장점이 있다 ) resize를 하는 방법은 여러가지가 있는데, 대표적으로 Array의 size의 2배 size를 할당하는 doubling이 있다. doubling - 데이터를 추가 app 하다가 메모리를 초과하게 되면 기존 배열의 size보다 두배..

카테고리 없음 2022.03.27