전체 글(42)
-
[CS : OS] 프로세스 & 스레드
프로그램 VS 프로세스 VS 스레드 프로그램 : 보조기억장치에 존재하는 실행파일 프로세스 : 메모리에 로드되어 실행 중인 작업 스레드 : 프로세스 안에서 실행되는 작업 흐름 단위 * 기본적으로 프로세스마다 최소 1개의 스레드를 보유하고 있다. 프로세스 메모리 메모리는 Code, Data, Heap, Stack 영역으로 구분되어 있다. - Code : 코드 자체를 구성하는 메모리 영역. 프로그램 명령이 위치하는 곳으로 기계어로 제어되는 메모리 영역 - Data : 전역변수, 정적 변수, 배열, 구조체 등이 저장. 프로그램이 실행될 때 생성되고 프로그램이 종료되면 시스템에 반환된다. 이때 초기화된 데이터는 Data 영역에 저장되고 초기화되지 않은 데이터는 BSS(Block Stated Symbol) 영역에 ..
2021.05.21 -
[CS : 네트워크] Blocking I/O & Non-Blocking I/O, Synchronous & Asynchronous
1) Blocking / Non–Blocking과 Synchronous / Asynchronous A. Blocking : 직접 제어할 수 없는 대상의 작업이 끝날 때까지 제어권을 넘겨주지 않는 것이다. 예를 들어 호출하는 함수가 IO를 요청했을 때 IO처리가 완료될 때까지 아무 일도 하지 못한 채 기다리는 것을 말한다. B. Non-Blocking : 직접 제어할 수 없는 대상의 작업 처리 여부와 상관이 없다. 예를 들어 호출하는 함수가 IO를 요청한 후 IO처리 완료 여부와 상관없이 바로 자신의 작업을 할 수 있다. C. Synchronous : A와 B가 시작 시간 또는 종료 시간이 일치하면 동기이다. 예를 들어 A, B Thread가 동시에 작업을 시작하는 경우(예를 들면, 자바에서 CyclicB..
2021.05.20 -
[CS : 네트워크] Load Balancing
1. Load Balancing 1) Load Balancing의 등장 배경 : 수많은 서버 접속자를 감당하기 위하여 서비스를 제공하는 측에서 미리 트래픽을 예측하고, 서버와 네트워크를 증설한다. 특히, 한 서버의 성능을 높이는 Scale-Up 작업은 그 한계가 있으므로 분산 처리를 위해 여러 대의 서버들을 놓게 되는 Scale-Out 작업을 하게 되는데, 이 때 여러 서버들로 대규모의 네트워크 트래픽을 분산 처리하는 기술을 바로 “Load Balacing”이라고 한다. a. Scale-Up : 서버 자체를 증강하여 처리 능력을 향상하는 것이다. 수직 스케일이라고 불리기도 한다. SMP(대칭형 멀티 프로세서)에 대해 프로세서를 추가하는 것이나 프로세서 그 자체를 고성능 모델로 옮겨놓는 것을 뜻한다. b...
2021.05.20 -
[백준] 1992번 : 쿼드트리
접근법 - 이전에 풀어봤던 2630번과 거의 동일한 메커니즘으로 풀었다. - 기본적으로 동작 원리는 N만큼을 검사해서 동일한 숫자로만 놓여있으면 그 숫자를 찍고, 그렇지 않으면 왼쪽 위, 오른쪽 위, 왼쪽 아래, 오른쪽 아래를 차례로 검사하여 압축 결과를 괄호 안에 찍는 방식이다. - 전과 다른 점은 이 4 분할된 영상을 ()로 에워싸야 하는 것과, 왼쪽 위, 왼쪽 아래, 왼쪽 아래, 오른쪽 아래를 순차적으로 검사해야 한다는 것이다. 이 과정은 단순히 생각해보면, 4 분할하는 곳의 앞뒤로 print("(", end=""), print(")", end="")을 각각 추가해주면 끝이 난다. - 전과 로직 자체가 거의 차이 없는 쉬운 문제인데 왜 2단계나 난이도 차이가 있는지 잘 모르겠다. - 이 문제를 풀면..
2021.05.17 -
[백준] 2630번, 색종이 만들기
접근법 - 분할 정복 기법 카테고리 문제를 골랐다. 분할 정복 기법을 사용하여야 된대서 어떤 식으로 풀어야 할지 고민을 하다가 다른 분들의 풀이법을 참고해가면서 풀었다. - 생각보다는 특별한 기법없이 재귀를 사용하여 4 분할하는 방식으로 풀었다. 4 분할한 정사각형이 같은 색인지를 체크하고 같은 색이라면 해당 색에 +1, 다른 색이 하나라도 존재하면 그것을 다시 4 분할하는 방식으로 상당히 직관적인 풀이였다. - white, blue 변수를 global로 선언해서 함수 내부에서 사용하게 하는 것만 주의하면 특별한 것은 없는 것 같다. 풀이 import sys input = sys.stdin.readline N = int(input()) paper = [list(map(int, input().split()..
2021.05.17 -
[CS : 네크워크] HTTP & HTTPS
HTTP(HyperText Transfer Protocol) 웹 상에서 클라이언트와 서버 사이에 이루어지는 요청/응답 프로토콜. 주로 HTML 문서를 주고받을 때 쓰이며 보통 80번 포트를 사용한다. HTTP는 HTML페이지 즉 텍스트를 주고받기 때문에 보안에 취약하다. Method, Path, Version, Headers, Body 등으로 구성 HTTP의 응답코드 1XX : 정보교환 2XX : Success (200번대까지의 응답코드는 성공!!) 3XX : Redirection (자료의 위치가 바뀌었음) 4XX : Client Error (클라이언트 측의 오류) 1) 400 : 요청상의 오류가 있어서 서버가 요청사항을 이해하지 못함 2) 401 : 권한없음 3) 404 : 문서를 찾을 수 없음 4) ..
2021.05.10