🗃️ 이전 글 [CS] 프로세스와 스레드 딥다이브 - 3. 실행, Context switch??🗃️ 이전 글 [CS] 프로세스와 스레드 딥다이브 - 2. 프로세스의 구조??🗃️ 이전 글 [CS] 프로세스와 스레드 딥다이브 - 1. 딥다이브 전 기초지식🧐 학습 계기이번에 스터디를 진행하면서 운영swift-library.tistory.com🧵 멀티스레드 프로세스많은 개발자들을 괴롭히고(?) 있는 스레드! 멀티 프로세싱은 Context switching을 통해서 os에서 관리한다. 하지만 각 프로세스 안에서도 Task관리... 해야겠지? 기존 전통적인 프로세스는 single-threaded process이였지만, 현대에 와서는 multithreaded process로 발전했다.A thread is a..
전체 글
🗃️ 이전 글 [CS] 프로세스와 스레드 딥다이브 - 2. 프로세스의 구조??🗃️ 이전 글 [CS] 프로세스와 스레드 딥다이브 - 1. 딥다이브 전 기초지식🧐 학습 계기이번에 스터디를 진행하면서 운영체제-프로세스에 대해서 학습공유를 하게 되었다. 학습을 하다 보니 역swift-library.tistory.com🤔 그래서 프로세스를 어떻게 "실행, 관리" 할 수 있는 거지?물론 PCB(Process Control Block)의 존재를 알고 있기는 했다. 하지만 정확하게 PCB가 뭔지, 어떻게 작동하는지가 궁금했다.🛠️ Kernel바로 커널이 등장했다. Activity Monitor를 보면 있는 그 친구...! 스레드상으로만 보면 압도적이다. (크롬 때문일까...?)User mode, Kernel ..
🗃️ 이전 글 [CS] 프로세스와 스레드 딥다이브 - 1. 딥다이브 전 기초지식🧐 학습 계기이번에 스터디를 진행하면서 운영체제-프로세스에 대해서 학습공유를 하게 되었다. 학습을 하다 보니 역시 파도파도 끝이 없다. 이 부분에서 학습공유에 정리하기 전에 내가 학습swift-library.tistory.com🧐 프로세스의 구조?흔히 구글에 프로세스의 구조라고 치면 너~무나도 유명한 Stack, Heap, Data, Text 네 가지 층으로 구성된 자료들을 흔히 확인할 수 있다.나도 프로그램이 실행되면 이렇게 Stack, Heap, Data, Text(Code) 뚝딱! 메모리에 할당되고 처리가 되는가보군? 정도로 넘어갔었는데 이번 기회에 조금 더 깊이 들어가 보고 싶었다. 공룡책(Operating Sys..
🧐 학습 계기이번에 스터디를 진행하면서 운영체제-프로세스에 대해서 학습공유를 하게 되었다. 학습을 하다 보니 역시 파도파도 끝이 없다. 이 부분에서 학습공유에 정리하기 전에 내가 학습했던 과정들을 상세하게 기록하고 싶어서 이렇게 블로그 글을 작성하게 되었다. (너무 구구절절 발표할순 없으니까...)🐥 프로세스에 대한 기초 지식프로세스라고 하면 당연하게 연결되는 것이 프로그램과 프로세스의 차이이다.📄 프로그램의 정의[컴퓨터] 어떤 문제를 해결하기 위해 컴퓨터에게 주어지는 처리 방법과 순서를 기술한 일련의 명령문의 집합체. -옥스퍼드 사전사전적 의미 그대로이다. 디스크에 저장된 처리 방법과 순서를 명령한 코드 뭉치 파일이라고 생각하면 될 것 같다.프로그램의 범위...?하지만 여기서 또 의문점이 생겼다...
🏁 문제 소개💡 문제 풀이가장 먼저 문제를 보고 생각난건 트리구조였다. 결국 -1, +1 두개의 자식노드로 numbers의 크기의 깊이만큼 들어가는 트리구조로 생각했다. [4, 1, 2, 1] 같은 경우는 아래 상태로 나타낼 수 있을 것 같다.DFS재귀함수를 활용하여 깊이우선탐색을 구현했다.func solution(_ numbers: [Int], _ target: Int) -> Int { dfs(numbers, target, 0, 0)}func dfs(_ numbers: [Int], _ target: Int, _ sum: Int, _ depth: Int) -> Int { if depth == numbers.count { return sum == target ? 1 : 0 ..
🥸 문제 소개오랜만에 코딩테스트 연습을 해보려고 아래의 문제를 간단하게 풀어보기로 했다.🤔 문제 풀이오랜만에 행렬을 마주하니 생각보다 시간이 조금 걸렸던듯... 행렬이 가물가물 했었다. 아래의 식을 활용하여 간단하게 코드를 작성할 수 있었다.func solution(_ a: [[Int]], _ b:[[Int]]) -> [[Int]] { let m = a.count let n = a[0].count let p = b[0].count var ans = Array(repeating: Array(repeating: 0, count: p), count: m) for i in 0..🔥 추가 학습아니 행렬은 너무너무너무나도 유용하고 유명한 수학 연산인데 Swift에서 기..
🏭 현재 프로젝트나는 GitPractice라는 프로젝트를 만들어서 커밋을 1부터 20까지 쌓아놓았다. 이 프로젝트로 실습을 진행하려고 한다.🤯 현재 상황프로젝트를 작업하다가 오류가 나버린 상황이다. 분명 이전에 되는 것을 확인했었는데 어느 순간부터 꼬인 건지 모르는 상황이라고 가정해 보자. 당장 커밋을 20개까지 한 상황이기 때문에 어느 커밋에서 문제가 생겼는지 모르는 상황이다.이럴 경우 아주 좋은 해결방법 중 하나가 git bisect라는 것이다. 이제부터 어떻게 git bisect로 이 상황을 해결해 볼 수 있는지 알아보자.🤓 git bisectgit bisect start를 해보자.시작해 보니 라는 모양이 보이는데 Bisect의 약자인 B로 보인다. waiting for both good an..
이 글을 읽어보시기 전에 이전 글을 읽어보시는 것을 추천합니다. [Git] git add를 하면 어떠한 일이 일어날까?🧑🏻💻 git addgit add는 변경사항을 staging area에 추가하는 명령어이다. 개발자라면 이걸 모르는 사람은 없을 것이라고 생각한다. 그렇다면 git add를 하면 내부에서는 어떠한 일이 벌어질까? 라swift-library.tistory.com🧑🏻💻 git commit개발자라면 모를 수 없는 git commit! 이전에는 git add를 하면 어떠한 일이 일어나는지 살펴보았다면 이번에는 그다음단계인 git commit을 하게 된다면 어떤 일이 일어날지에 대해서 알아보자.😎 실습역시 뭐니 뭐니 해도 실습이 최고다.🤔 현재 상황저번에 했던 간단한 프로젝트에 ..