일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Database
- network
- Redux
- 동적 계획법
- Javascript
- Algorithm
- DP
- git
- 알고리즘
- CS
- 다이나믹 프로그래밍
- BFS
- 안드로이드
- Graph
- DFS
- java
- react
- 자바
- 그레이들
- TypeScript
- Data Structure
- 리트코드
- LeetCode
- 백준
- 프로그래머스
- VIM
- Python
- vscode
- frontend
- db
- Today
- Total
목록전체 글 (390)
늘 겸손하게

[ 네트워크 토폴로지 ] network topology는 노드와 링크가 어떻게 배치되어 있는지에 대한 방식이자 연결 형태를 말함. 트리 토폴로지 버스 토폴로지 스타 토폴로지 링형 토폴로지 메시 토폴로지 1. 트리 토폴로지 계층형 토폴로지라고 하며 트리 형태로 배치한 네트워크 구성을 말합니다. 장점 - 노드의 추가, 삭제가 쉽다 단점 - 특정 노드에 트래픽이 집중될 때 하위 노드에 영향을 끼칠 수 있다. 2. 버스 토폴로지 버스(bus) 토폴로지는 중앙 통신 회선 하나에 여러 개의 노드가 연결되어 공유하는 네트워크 구성을 말하며 근거리 통신망에서 사용합니다. 장점 - 설치 비용이 적음 - 신뢰성이 우수 - 중앙 통신 회선에 노드를 추가하거나 삭제하기 쉬움 단점 - 스푸핑이 가능(보안이 약함) 스푸핑? sp..

네트워크 정의 노드(node)들이 링크(link)로 연결되어 있어 리소스를 공유하는 집합을 의미 여기서 노드란 서버, 라우터, 스위치 등의 네트워크 장치를 의미 링크는 유선 또는 무선을 의미 좋은 네트워크란? 많은 처리량을 처리할 수 있고, 지연 시간이 짧으며 장애 빈도가 적고 좋은 보안을 갖춘 네트워크를 말한다. 1. 많은 처리량 2. 지연 시간 짧음 3. 장애 빈도 적음 4. 좋은 보안 처리량 처리량(throughput)이란 링크를 통해 전달되는 단위 시간당 데이터량 단위로는 bps(bits per second)를 사용. (bps = 초당 송수신되는 비트 수) 처리량은 트래픽, 네트워크 장치간 대역폭, 네트워크 중간에 발생하는 에러, 하드웨어 스펙 등의 영향을 받습니다. 대역폭 주어진 시간 동안 네트..
[ Blocking/Non-blocking ] 블록, 논블록은 호출된 함수가 호출한 함수에게 제어권을 건네주는 유무의 차이라고 볼 수 있다. 함수 A, B가 있고, A안에서 B를 호출했다고 가정해보자. 이때 호출한 함수는 A고 호출된 함수를 B라고 할 경우 Blocking : 함수 B는 작업이 끝날때까지 제어권을 가지고 있는다. A는 B의 작업이 끝날때까지 기다려야 한다. Non-blocking : 함수 B는 작업이 끝나지 않았어도 A에게 제어권을 바로 넘겨준다. A는 B를 기다리면서도 다른 일을 진행 가능 즉, 호출된 함수에서 일을 시작할 때 바로 제어권을 리턴해주면 Non-blocking 할 일을 마치고 리턴해주면 Blocking [ Synchronous/Asynchronous ] Asynchrono..

메모리 구조 프로그램이 실행되기 위해서는 먼저 프로그램이 메모리에 로드(load)되어야 합니다. 또한, 프로그램에서 사용되는 변수들을 저장할 메모리도 필요합니다. 따라서 컴퓨터의 운영체제는 프로그램의 실행을 위해 다양한 메모리 공간을 제공합니다. 프로그램이 운영체제로부터 할당받는 대표적인 메모리 공간은 다음과 같습니다. 1. Code 2. Data 3. Heap 4. Stack 코드 ( Code ) 메모리의 코드 (code) 영역은 실행할 프로그램의 코드가 저장되는 영역으로 텍스트(code) 영역이라고도 부릅니다. CPU는 코드 영역에 저장된 명령어를 하나씩 가져가서 처리하게 됩니다. 데이터 (data) 메모리의 데이터 (data) 영역은 프로그램의 전역 변수와 정적(static) 변수가 저장되는 영역입..
공유자원 시스템 안에서 프로세스, 스레드가 함께 접근 가능한 자원이나 변수를 의미. 이 공유 자원을 2개 이상의 프로세스가 동시에 읽거나 쓰는 상황을 경쟁 상태(race condition)라고 한다. 동시에 접근을 시도할 때 접근 순서에 따라 결과값이 달라질 수 있는 상황. 임계 구역 - Critical Section 공유 자원의 접근 순서에 따라 실행 결과가 달라지는 프로그램 영역 공유 데이터를 여러 프로세스가 동시에 접근할 때 잘못된 결과를 만들 수 있기 때문에, 한 프로세스가 임계구역을 수행할 때는 다른 프로세스가 접근하지 못하도록 해야 한다. 임계 구역을 해결하기 위한 방법은 크게 뮤텍스, 세마포어, 모니터 세 가지가 있으며 모두 상호 배제, 한정 대기, 융통성이라는 조건을 만족합니다. 이 방법의..
Race Condition - 경쟁 상태 공유 자원에 대해 여러 프로세스가 동시에 접근할 때, 어떤 순서로 데이터에 접근하느냐에 따라 결과 값이 달라질 수 있는 상황을 말합니다. -> 동시 접근 시 자료의 일관성을 해치는 결과가 나타남 Race Condition이 발생하는 경우 1. 커널 작업을 수행하는 중에 인터럽트 발생 문제점 : 커널모드에서 데이터를 로드하여 작업을 수행하다가 인터럽트가 발생하여 같은 데이터를 조작하는 경우 해결법 : 커널모드에서 작업을 수행하는 동안, 인터럽트를 disable 시켜 CPU 제어권을 가져가지 못하도록 한다. 2.프로세스가 'System Call'을 하여 커널 모드로 진입하여 작업을 수행하는 도중 Context Switch 발생할 때 문제점 : 프로세스1이 커널모드에서..
데드락 - DeadLock, 교착 상태 두 개 이상의 프로세스나 스레드가 서로 자원을 얻지 못해서 다음 처리를 하지 못하는 상태 무한히 다음 자원을 기다리게 되는 상태 시스템적으로 한정된 자원을 여러 곳에서 사용하려고 할 때 발생한다. 데드락이 일어나는 경우 프로세스 1과 2가 자원 1,2를 모두 얻어야 한다고 가정해보자 t1 : 프로세스1이 자원1을 얻음 / 프로세스2가 자원2를 얻음 t2 : 프로세스1은 자원2를 기다림 / 프로세스 2는 자원1을 기다림 현재 서로 원하는 자원이 상대방에 할당되어 있어서 두 프로세스는 무한정 wait 상태에 빠짐 -> DeadLock (주로 발생하는 경우) 멀티 프로그래밍 환경에서 한정된 자원을 얻기 위해 서로 경쟁하는 상황 발생. 한 프로세스가 자원을 요청했을 때, ..

스케줄링 CPU 사용량을 최대로 하기 위해 프로세스를 잘 배정하는 것. 조건 : 오버헤드 최저, 사용률 최대, 기아 현상 최저 목표 - 시스템에 따라 조금씩 다르다 Batch System : 가능하면 많은 일을 수행. 시간(time)보단 처리량(throughout)이 중요. Interactive System : 빠른 응답 시간. 적은 대기 시간. Real-time System : 기한(deadline) 맞추기. 선점 / 비선점 스케줄링 선점 (preemptive) OS가 CPU의 사용권을 선점할 수 있는 경우, 강제 회수하는 경우(처리시간 예측 어려움) 비선점(non-preemptive) 프로세스 종료 혹은 I/O 등의 이벤트가 있을 때까지 실행 보장 (처리시간 예측 용이함) 프로세스 상태 선점 스케줄링..