일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 프로그래머스
- VIM
- TypeScript
- DP
- Algorithm
- 자바
- java
- db
- 그레이들
- frontend
- network
- LeetCode
- 동적 계획법
- Python
- 알고리즘
- 백준
- vscode
- Data Structure
- 다이나믹 프로그래밍
- react
- 리트코드
- git
- CS
- Redux
- DFS
- Graph
- Javascript
- BFS
- 안드로이드
- Database
- Today
- Total
목록CS (40)
늘 겸손하게
[ 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) 변수가 저장되는 영역입..
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 (주로 발생하는 경우) 멀티 프로그래밍 환경에서 한정된 자원을 얻기 위해 서로 경쟁하는 상황 발생. 한 프로세스가 자원을 요청했을 때, ..