일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- java 백준 1509
- mongodb lookup
- 자바 백준 팩토리얼 개수
- go
- java 1509
- java 팩토리얼 개수
- spring mongodb
- spring mongoTemplate switch
- 백준 특정한 최단 경로
- ipfs singletone
- kotiln functional interface
- 백준 1504 java
- Java Call By Refernce
- 자바 1676
- spring mongoTemplate
- java 1238
- spring mongodb switch
- java 파티
- kotiln const val
- 백준 2252 줄세우기
- kotiln const
- Spring ipfs
- nodejs rabbitmq
- 백준 연결요소 자바
- 안정해시
- 익명 객체 @transactional
- 전략 패턴이란
- javav 1676
- rabbitmq 싱글톤
- ipfs bean
- Today
- Total
목록책 읽기 (8)
공부 흔적남기기
흔히 우리가 홈 네트워크 즉 집에서 인터넷을 구성할 경우 공유기를 사용한다. 보통 공유기는 L3 스위치로 L1(데이터 전송), L2(MAC 주소 구별), L3(IP 구별)의 기능을 모두 가지고 있다. 이러한 공유기는 더미허브 그리고 L2스위치의 기능을 포함하고 개선한 장치이다. 스위치는 더미허브(데이터 전송)의 기능을 포함하고 있다. 즉 상위 스위치는 하위 스위치의 기능을 포함하며 강력한 기능을 제공한다. 그에 따라 가격도 급증한다. 더미허브는 유입된 데이터를 연결된 모든 포트에 전송하다. 따라서 보안에 취약하고 데이터 트래픽을 많이 차지해 더미라는 별명을 얻게 되었다. 이러한 단점을 해결한 것이 L2 스위치로 스위치 허브라고도 불린다. 스위치 허브는 MAC을 기반으로 데이터가 수신되면 각 포트의 MAC..
교착 상태 교착 상태의 개요 2개 이상의 작업이 동시에 이루어지는 경우 다른 작업이 끝나기만 기다리며 작업을 더 이상 진행 하지 못하는 상태를 교착 상태라고 한다. 아사 현상은 잘못된 프로세스 실행 정책으로 인해 프로세스가 실행되지 못하는 반면 교착상태는 여러 프로세스가 실행되다가 자연스럽게 이도저도 못하게 되는 상태이다. 따라서 교착상태가 발생하면 강압적으로 해결해야한다. 보통 교착 상태는 공유할 수 없는 자원을 사용할때 잠금을 사용할 때 주로 발생한다. 교착 상태 필요조건 교착 상태는 네가지 필요조건이 존재한다. 상호배제, 비선점, 점유와 대기, 원형대기 네 가지 조건을 동시에 만족해야 교착 상태가 발생한다. 상호배제: 한 프로세스가 자원은 다른 프로세스와 동시에 공유할 수 없으며 배타적인 자원으로 ..
프로세스 간 통신 프로세스 간 통신의 개념 프로세스 또는 스레드는 독립적으로 실행된다. 프로세스나 스레드가 협업을 하거나 병렬로 처리하기 위해서는 데이터를 주고받아야한다. 스레드는 하나의 프로세스 내부에서 실행되기 때문에 데이터를 주고 받는 것은 크게 어렵지 않다. 하지만 프로세스는 서로 공유하고 있는 부분이 없기 때문에 이를 새로 만들어서 통신해야한다. 운영체제는 프로세스 간 통신을 쉽게 할 수 있는 통신 방법을 제공하는데 이를 프로세스 간 통신(IPC) 라고한다. 대표적인 IPC로 공유 저장공간을 사용한 통신, 파이프 통신, 소켓 통신이 있다. 공유 저장공간을 이용한 통신은 데이터를 주고 받는 방법을 프로세스끼리 알아서 정의해서 사용해야하기 때문에 가장 원시적인 방식이다. (영구적인 데이터 저장이 필..
스케줄링 개요 CPU 스케줄링이란 어떤 작업에 CPU를 배정할지 결정하는 것이다. 컴퓨터 시스템 효율은 어떤 프로세스에 CPU를 먼저 배정하느냐에 따라 달라지므로 작업의 형펑성과 효율성을 결정하는 것은 중요한 일이다. CPU 스케줄러는 프로세스가 생성된 후 종료될 때까지 모든 상태 변화를 조정한다. CPU 스케줄링 고수준 스케줄링 고수준 스케줄링은 시스템 내의 전체 작업 수를 조절하는 것이다. 작업이란 운영체제에서 다루는 단위로 1개 또는 여러개의 프로세스로 이루어진다. 고수준 스케주링은 작업이오면 작업을 승인할지 거부할지를 결정한다. 즉 고수준 스케줄링에 따라 시스템 내에서 동시에 실행 가능한 프로세스의 총 개수가 정해진다. 중간 수준 스케줄링 중간 수준 스케줄링은 저수준과 고수준 사이에 일어난다. 고..

프로세스 프로세스는 프로그램이 실행시고 운영체제가 PCB를 부여해 준비상태에 즉 메모리에 올라간 것이다. 프로세스는 운영체제에 CPU 스케줄러에 의해 관리된다. CPU는 준비상태에 있다가 자신의 순서가 오면 CPU를 할당받게 되고 타임슬라이스 동안 혹은 입출력 인터럽트가 발생하기 전까지 열심히 작업한다. 작업이 완료되면 PCB가 제거되고 메모리에서 제거된다. 입출력이 발생하면 대기상태에 들어있다가 입출력 완료 인터럽트가 오면 다시 준비 상태로 간다. 작업이 끝나지 않으면 준비 상태로 돌아간다. 스레드 스레드는 위에서 프로세스가 CPU에서 동작하는 단위이다. 즉 프로세스는 하나이상의 스레드를 갖고 있으며 CPU는 스레드를 실행시키는 것이다. 스레드는 하나의 프로세스 내부에서 코드, 데이터, 힙 공간을 공유..
프로세스의 개요 프로세스의 개념 프로그램이란 어떤 데이터를 사용하여 어떤 작업을 할지 그 절차를 적어 놓은 것이다. 반면 프로세스는 작성한 프로그램을 실행에 옮긴다는 의미이다. 프로그램을 실행하게되면 프로그램을 메모리의 적당한 위치로 가져온다. 그와 동시에 PCB를 생성한다. 프로세스 실행을 세부적인 단계로 나눌 수 있다. 생성단계: 프로그램을 실행하여 생성된 PCB와 함께 메모리로 올라간다. 준비단계: 메모리에서 자신의 실행단계를 기다린다. 실행단계: 프로세스가 CPU를 점유한 상태로 프로그램이 진행된다. 완료단계: 실행단계에서 프로세스가 다 끝난상태로 PCB가 제거되고 메모리에서 내려간다. 대기단계: 프로세스가 실행단계에서 입출력이 발생한 상태로 인터럽트가 발생하면 준비단계로 이동한다. 휴식상태: 프..
컴퓨터의 기본 구성 하드웨어의 구성 CPU와 메모리 컴퓨터는 컴퓨터의 중요한 작업의 대부분을 맡아서 처리하는 필수장치 CPU와 메인메모리 그리고 그외의 부품인 주변장치로 나뉜다. 대표적인 주변장치로는 입력장치 출력장치 저장장치 등이 있다. CPU는 명령어를 해석하고 실행하는 장치 메모리는 작업에 필요한 프로그램과 데이터를 저장하는 장소로 바이트 단위로 분할되어 있으며 주소로 구분한다. 저장장치 저장장치는 크게 휘발성메모리인 메인 메모리와 비휘발성메모리인 하드 디스크가 있다. 메인메모리는 전기신호로 데이터를 주고 받기 때문에 속도가 빠르며 하드디스크에서 일부 데이터를 가져와 CPU에서 처리할수 있게 해준다. 메인 메모리는 RAM이라 불리며 Random Acess Memory이다. RAM의 의미는 저장공간에..
운영체제의 시작 운영체제는 본래 미사일의 탄도를 계산하기 위해 개발되었다. 계산을 위해 개발 되었지만 성능을 개선시키기 위해선 새롭게 제작해야하는 기계와 달리 소프트웨어나 하드웨어의 확장/변경을 통해 성능을 개선시킬 수 있고 특히 프로그래밍이 가능 하기 때문에 컴퓨터라고 불린다. 운영체제란 컴퓨터는 크게 하드웨와 소프트웨어로 구성된다. 하드웨어란 컴퓨터 시스템이 작동하는데 필요한 물리적 구성 요소이다. 소프트웨어란 하드웨어를 제어하여 원하는 작업을 수행시키는 명령어의 모음이다. 소프트웨어는 응용 소프트웨어와 시스템 소프트웨어로 나눌 수 있다. 응용 소프트웨어는 특정 작업을 위해 사용하는 프로그램이다. 시스템 소프트웨어는 컴퓨터 하드웨어와 응용 소프트웨어를 관리하기 위한 소프트웨어로 운영체제와 유틸리가 있..