📓STUDY

📓STUDY/OS

[OS/운영체제/공룡책 붓츠부스] 프로세스 간 통신

Producer-Consumer Problem 생산자-소비자 문제 생산자는 정보를 생성하고, 소비자는 정보를 소비하는 모델이다. 여러 개의 프로세스를 어떻게 동기화할 것인가에 대한 고전적인 문제를 의미한다. IPC (Inter-Process Communication) 프로세스간의 통신 프로세스 간의 통신을 통해서 생산자-소비자 문제를 해결할 수 있다. 1. shared memory 생산자와 소비자는 concurrent하게 동작한다. buffer를 이용하여, 생산자는 buffer에 데이터를 넣고, 소비자는 buffer를 비우는 역할을 수행한다. 2. message passing send / receive message를 OS에 전송하고, OS가 데이터를 처리함 communication link : 통신 프..

📓STUDY

Git 커밋 히스토리에서 파일 완전히 삭제하기

원치 않는 커밋이 저장소에 올라갔을때, 나의 실수를 남들도 모르게 하고 싶을 때, Git 커밋 기록 완전히 삭제하기 vscode를 메모장처럼 쓰던 나는 나도 모르는 사이에 회사 파일이 개인 깃에 올라간 걸 발견했다. 부랴부랴 삭제한 후, 다시 커밋-푸시를 날려보았지만 이미 히스토리에 남아있는 나의 치욕의 상처는 지워지지 않고 남아있었던 것이다,,, git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch 경로/파일명.확장자' --prune-empty --tag-name-filter cat -- --all git add . git commit -m "커밋메시지" git push origin --force --all 이제 히스토리에..

📓STUDY/OS

[OS/운영체제/공룡책 붓츠부스] 2. 프로세스란?

Process 현재 실행중인 프로그램을 프로세스라고 하며, 운영체제에서 작업의 단위를 프로세스라 한다. text : 컴파일된 소스 코드가 저장되는 영역 data : 전역 변수나 초기화된 데이터가 저장되는 영역 stack : 함수의 매개변수, 복귀 주소, 로컬 변수 등의 임시 데이터가 저장되는 영역 heap : 프로세스 실행 중에 동적으로 할당되는 메모리가 저장되는 영역 프로세스의 생명주기 New : 프로세스가 생성되어 메인메모리에 올라온 상태 Running : CPU가 실제로 프로세스를 수행하고 있는 상태 Waiting : 프로세스 도중에 I/O 작업을 수행하는 상태로 CPU가 I/O작업의 완료를 기다리는 시기 Ready : 변수 초기화 등 기초 준비작업을 모두 끝나고 실행을 할 수 있는 상태 Termi..

📓STUDY

프로그래밍 패러다임 | Programming Paradigm 📢 함수형 프로그래밍 & 객체지향 프로그래밍 & 절차형 프로그래밍

프로그래밍 패러다임 프로그래밍 패러다임은 프로그래머에게 프로그래밍의 관점을 갖게 해주는 역할을 하는 개발 방법론 객체지향 프로그래밍은 프로그래머들이 프로그램을 상호 작용하는 객체들의 집합으로 볼 수 있게 함 함수형 프로그래밍은 상태 값을 지니지 않는 함수 값들의 연속으로 생각할 수 있게 함 프로그래밍 패러다임의 분류 함수형 프로그래밍 순수 함수를 블록처럼 쌓아 로직을 구현하고 고차 함수를 통해 재사용성을 높인 프로그래밍 패러다임 함수형 프로그래밍은 순수 함수를 통해 부수 효과(Side effect)를 최대한 억제하여 오류를 피하고 프로그램의 안정성을 높인다. 순수 함수 순수함수란 출력이 입력에만 의존하는 함수를 의미한다. const b = 2 const func = (a) =>{ return a + 1 ..

📓STUDY/알고리즘

이진 탐색 | Binary Search

이진 탐색 | Binary Search 이진 탐색이란 정렬된 배열에서 특정한 타겟값을 찾는 검색 알고리즘이다. 이진 탐색의 시간 복잡도는 O(logN)으로 순차 탐색의 시간 복잡도O(N)에 비해 상대적으로 빠른 탐색 알고리즘이다. 그래서 주어진 배열의 크기가 매우 크거나 효율성을 높이고 싶다하면 이진탐색 알고리즘을 가져다가 쓰면 좋다. 백준 부술때 n이 어지러울 정도로 큰 수로 주어지면 이건 이진탐색이구나 하고 시작하면 반은 성공한다👊 이진 탐색의 특징 이진 탐색은 배열 안의 데이터가 정렬되어 있어야만 사용할 수 있으며, 탐색 범위를 절반씩 좁혀가며 데이터를 탐색하는 특징이 있다. 이진 탐색은 위치를 나타내는 변수 3개를 사용한다. ➡️ 탐색 범위의 시작점, 끝점, 중간점 다음 세개의 변수를 바탕으로 찾..

📓STUDY/알고리즘

[python | 파이썬] Greedy Algorithm | 그리디 알고리즘

그리디 알고리즘은 말그대로 "탐욕법" 즉, 현재 상황에서 지금 당장 좋은 것만을 고르는 방법을 의미한다. 그리디의 대표적인 문제인 거스름돈 문제를 살펴보자. 5585번: 거스름돈 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사 www.acmicpc.net 이 문제는 그리디 알고리즘을 이용해 풀 수 있는 가장 대표적인 문제로, 가장 큰 화페 단위부터 돈을 거슬러 주는 방식으로 해결할 수 있다. coins = [500, 100, 50 , 10, 5 , 1] n = int(input()) money = 1000-n cnt = 0 for coi..

두_두
'📓STUDY' 카테고리의 글 목록