일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- react 기초
- 운영체제
- 개발공부
- 파이썬
- Python
- 자료구조
- 코드스테이츠
- JavaScript
- 자바스크립트
- 프로그래머스
- 글또
- OS
- 자바
- codestates
- algorithm
- Operating System
- python algorithm
- node.js
- 컴퓨터공학
- 알고리즘
- 파이썬 알고리즘 인터뷰
- 비동기
- context switching
- typeScript
- useState
- java
- Computer Science
- Zerobase
- REACT
- execution context
- Today
- Total
목록Computer Science (32)
Back to the Basics
제로베이스 컴퓨터 공학자 따라잡기 온라인 완주반 강의를 듣고 정리한 포스팅 지금까지 배웠던 내용을 토대로 아래의 코드를 실행한다고 할 때 내부적으로 어떻게 진행이 되는지 알아보자. #include #include #include #include int main() { int fd; df=open('data.txt'.O_RDONLY); if(fd == -1) { printf("Error: can not open filr\n"); return 1; } else { printf("File opned and now close_\n"); close(fd); return (); } } 전체적인 흐름은 아래와 같다. 컴파일 → 실행파일이 만들어진다 → 실행파일을 실행하기 위해서 일반 사용자는 쉘 interface를 ..
제로베이스 컴퓨터 공학자 따라잡기 온라인 완주반 강의를 듣고 정리한 포스팅 주요 IPC 기법인 pipe , message queue , shared memory 에 대해 알아보자. IPC 기법들은 System programming에서 직접 실습을 해야 하는 부분이기 때문에 간단하게 개념에 대해서만 정리를 하였다. 1. pipe(파이프) pipe는 하 나의 process의 output이 다른 process로 들어간다. 이를 단방향 통신이고 한다. fork()로 자식 프로세스를 만들었을 때 부모와 자식 간 통신할 때 사용된다. 파이프 IPC는 기본적으로 아래와 같이 진행된다.(그림 참고) pipe로 fd[0]과 fd[1]을 먼저 생성하고 주소값을 넣는다.(이 부분은 아래의 코드를 통해 더 이해해보자) 부모에..
제로베이스 컴퓨터 공학자 따라잡기 온라인 완주반 강의를 듣고 정리한 포스팅 프로세스 간 커뮤니케이션 - InterProcess Communication (IPC) Overview 기본적으로 Process는 다른 Process의 공간을 접근할 수 없다. 만약 서로 공간을 쉽게 접근할 수 있다면 Process의 데이터나 코드가 바뀔 수도 있기 때문에 원칙적으로 프로세스 간의 공간 접근은 불가능하다. Process 간 통신이 필요하기 때문에 IPC(InterProcess Communication)라는 특별한 방법을 사용한다. Process 간 통신이 필요한 경우 많은 CPU를 사용하는 경우 ( 대부분 그렇지만) Process 간 상태를 확인하고 데이터를 송, 수신할 수 있는 수단이 필요한다. fork() 시스..
제로베이스 컴퓨터 공학자 따라잡기 온라인 완주반 강의를 듣고 정리한 포스팅 프로세스와 컨텍스트 스위칭 - PCB, PC, SP Process를 다른 Process로 바꾸는 메커니즘을 context switching이라고 하였다. context switching을 위해 PCB라는 registor를 이용하여 process의 정보를 참조한다. 그렇다면 PCB는 정확히 무엇이고 어떻게 생겼을까 ? PCB PCB는 Process Contril Block의 약자로, 프로세스에 상태를 저장하는 데이터구조로 OS에서 관리하고있다. Process Context Block이라고도 하며, 프로세스가 실행중인 상태를 캡쳐하고 구조화하여 저장한다. PCB는 아래와 같은 구조로 이루어져있다(c 구조체로 이루어져있음) (Linux..
제로베이스 컴퓨터 공학자 따라잡기 온라인 완주반 강의를 듣고 정리한 포스팅 프로세스와 컨텍스트 스위칭 - Stackoverfloew 이전 강의에서는 Context Switching을 이해하기 위해 Process의 구조와 process 실행 과정에 대해 공부를 하였다. Computer Science 이번 강의에서는 Context Switching에 대하여 확실히 이해는 것을 목표로 공부하였다. 들어가기 전에, Process 구조를 이용하여 해커들의 공격에 활용되었던 사례에 대해 알아보자! Stackoverflow 아래 code에 대한 pocess 실행 과정을 예로 들어보자 위의 code의 process 실행은 아래와 같이 실행된다.(간략하게) Main에서 Copy 힘수 호출문을 만나면 return addr..
GCD(Greatest Common Divisor) 최대 공약수 1. 문제 M개의 A 빼빼로와 N개의 B 빼빼로를 k명의 직원에게 공평하게 나누어 주는 방법을 구하는 함수를 작성하는 문제이다. 예를 들어 A빼빼로가 4개 B빼빼로가 8개인 경우, 직원이 2명이라면 A 뺴빼로를 2개, B를 4개씩 공평하게 나눠준다. 입력 : 인자 M (1
Rock Paper Scissors 1. 문제 이 문제는 가위바위보를 n 판 했을 때 한 사람이 낼 수 있는 모든 경우의 수를 구하는 문제이다. R=Rock , P=Paper, S=Scissors라고 할 때 4판을 했을 때 트리 구조로 구성을 해보면 아래와 같다. 중학생 때 배웠던 수학을 떠올려보자, 한 판을 할 때마다 R, P, S 3개 중 중복을 허용하여 뽑는 경우의 수 3Π\PiΠ1과 같다. 바로 중복순열이다. 중복순열은 자료구조 DFS를 이용하여 전체를 순환하는 방식을 사용한다. DFS에 대한 개념적인 내용은 Section2의 첫 부분인 자료구조에서 이미 정리한 바가 있으니 참고하자 자료구조/알고리즘] Graph - BFS , DFS 입력 : depth 또는 없음 출력 : 2차원 배열 조건 : 여..
제로베이스 컴퓨터 공학자 따라잡기 온라인 완주반 강의를 듣고 정리한 포스팅 프로세스와 컨텍스트 스위칭 Context Switching 이란 간단하게 말하면, Process A 실행 중 Process B로 바꿔주는데, 이 바꿔주는 메커니즘을 Context Switching이라고 한다. Context Switch는 Process와 매우 밀접하게 관련이 있으며 이 Contetxt Switching 메커니즘에 대해 조금 더 이해하기 위해 Process 구조를 알 필요가 있다. 즉, 실제 프로그램의 구조를 알아야 한다. 1. Process의 구조 Deep Dive! Process의 구조 Process는 사용자 입장에서 크게 Text, Data, Head, Stack이라는 네 가지 영역으로 구분된다. text (C..