System
-
Standard Input (표준입력) 이해하기System 2023. 10. 16. 08:24
- 목차 소개. 프로그래밍 입문 수업을 들을 때, 표준 입출력에 대한 강좌가 꼭 하나씩 있곤 합니다. Stdin.read() 와 같은 형식으로 코드 한 줄을 입력하고 나면, 키보드로 타이핑한 텍스트가 터미널로 출력되곤 했습니다. 사실 실무에선 이러한 코드를 다룰 일이 드물고, UI 를 다루는 대부분의 프론트엔드 영역에서도 사용자의 input 을 다루는 코드들이 굉장히 추상화 되어있죠. HTML 의 태그, Android 나 IOS 에서도 사용자의 입력을 다루는 컴포넌트들이 추상화되어 있습니다. 그래서 표준 입력을 다루는 코드를 다룰 일은 거의 없습니다. 세월이 흘려서 궁금증이 생겨서 Standard Input 에 대한 글을 작성해보려고 합니다. Standard Input 이란? Standard Input ..
-
RPC (Remote Procedure Call) 알아보기System 2023. 10. 14. 11:24
- 목차 소개. RPC 는 Remote Procedure Call 의 약자입니다. 의미는 "원격 서버에 있는 함수를 사용한다" 라는 뜻인데요. 프로그래밍에서 함수를 뜻하는 여러 표현들이 있습니다. Function, Procedure, Method 등은 제각각 고유의 목적이 있어서 약간의 차이는 존재하지만, 이번 글에선 다 같은 함수라고 생각하겠습니다. 어떤 프로그램이 하나 존재한다고 했을 때, 이 프로그램이 프로그램 내부에 선언된 함수들을 사용할 수 있습니다. 하지만 이 프로그램이 그 함수를 가지고 있지 않다면, 다른 곳에 있는 함수를 사용해야할 상황이 생길 수 있겠죠. RPC 는 이러한 상황을 커버하기 위해서 만들어진 Procedure Call 방식입니다. 이어지는 내용에서 자세히 알아보도록 하겠습니다..
-
IPC Signal 알아보기System 2023. 10. 7. 18:44
- 목차 함께 보면 좋을 글 https://westlife0615.tistory.com/345 Shared memory communication 알아보기 - 목차 소개. IPC (Inter-Process Communication) 의 방식 중의 하나로 Shared memory Communication 방식이 존재합니다. Shared memory 는 메모리 상에 존재하는 공유 메모리인데요. 모든 프로세스들이 Shared memory 에 접 westlife0615.tistory.com 소개. Signal 은 IPC 통신의 한가지 방식입니다. IPC 는 Inter-Process Communication 의 약자로 프로세스 간의 통신을 의미합니다. 대표적인 IPC 의 방식은 Shared Memory 와 Sign..
-
Shared memory communication 알아보기System 2023. 10. 7. 10:13
- 목차 관련된 글 https://westlife0615.tistory.com/347 IPC Signal 알아보기 - 목차 함께 보면 좋을 글 https://westlife0615.tistory.com/345 Shared memory communication 알아보기 - 목차 소개. IPC (Inter-Process Communication) 의 방식 중의 하나로 Shared memory Communication 방식이 존재합니다. Shared mem westlife0615.tistory.com 소개. IPC (Inter-Process Communication) 의 방식 중의 하나로 Shared memory Communication 방식이 존재합니다. Shared memory 는 메모리 상에 존재하는 공..
-
[memory management] page 알아보기System 2023. 9. 22. 17:28
- 목차 * 소개page 는 메모리를 구성하는 단위입니다. 하나의 프로그램이 메모리로 로딩이 될 때 프로그램을 구성하는 데이터들은 page 라는 단위로 나뉘어져서 메모리에 로딩이 됩니다. 보통 프로그램은 code segment 로 표현되는 코드 영역과 data segment 라고 불리는 데이터 영역으로 나뉘는데요. 이러한 segment 들이 page 라는 단위로 메모리에 존재합니다. page 는 디스크와 메모리 사이로 전달되는 전송의 단위이자 저장되는 단위입니다. 그리고 page 의 단위는 보통 4KB 인 경우가 많은데, 프로그램 하나의 크기가 page 의 사이즈와 일치하는 경우는 거의 없을 겁니다. 그래서 하나의 프로그램으로부터 생성된 많은 page 들은 메모리 상에서 흩어져서 존재하게 되는데요. 이러..
-
Call Stack 이해하기System 2023. 9. 21. 17:24
- 목차 * 소개 어떤 프로그램을 사용한다는 의미에 대해서 생각해 볼 필요가 있습니다. 예를 들어, 크롬같은 웹 브라우저를 사용한다거나 Spring 같은 서버를 실행시킨다거나 하는 행동들을 말이죠. 프로그램은 컴파일 과정을 거쳐 바이너리 파일이 되는데요. 우리가 흔히 아는 0과 1로 구성된 상태가 되어 CPU 에 의해서 인식될 수 있게 됩니다. 이러한 바이너리 상태의 프로그램이 실행 상태가 되면 프로세스라고 불립니다. 프로세스는 CPU 를 비롯한 컴퓨터 리소스에 의해서 순차적으로 실행되게 됩니다. 실행 방식은 여러 종류가 있습니다. - Sequential Execution : 일반적인 실행입니다. Top-Down 방식으로 한 줄 씩 실행되는 방식 - Branching Execution : If-else ..
-
리눅스 프로세스System 2023. 1. 24. 20:43
프로그램과 프로세스의 차이 프로그램은 단순한 파일입니다. 실행파일이라고도 하죠. 이 실행파일을 실행한 결과물이 바로 프로세스입니다. 프로세스는 기본적으로 CPU 와 메모리를 사용합니다. 그 외 프로그램의 내용에 따라 다른 리소스를 활용하죠. 그래픽 요소를 렌더링하는 게임, 웹 등은 그래픽 자원을 많이 활용할 것이고, 서버와 같은 프로그램은 네트워크 자원을 활용합니다. PCB ( process control block) 리눅스에서 프로세스를 관리하기 위한 자료구조입니다. 운영체제가 프로세스를 한눈에 관리하기 위해 PCB 는 프로세스의 대표적인 정보들로 구성됩니다. 프로세스는 컴퓨터 자원들 중 기본적으로 CPU 를 사용합니다. 하지만 CPU 는 제한적인 리소스이기 때문에 프로세스들이 CPU 점유와 반환을 반..
-
Thread 알아보기System 2022. 12. 13. 19:09
- 목차 같이 읽으면 좋은 글 https://westlife0615.tistory.com/285 Call Stack 이해하기 - 목차 * 소개 어떤 프로그램을 사용한다는 의미에 대해서 생각해 볼 필요가 있습니다. 예를 들어, 크롬같은 웹 브라우저를 사용한다거나 Spring 같은 서버를 실행시킨다거나 하는 행동들을 말이 westlife0615.tistory.com 소개. Thread 는 프로그램의 실질적인 실행 단위입니다. 소위 프로그램이 실행되면, 실행된 프로그램을 Process 라고 하죠. Thread 는 이 실행 중인 Process 내부에서 다루어지는 가장 작은 실행 단위입니다. 실제로 CPU 를 차지해서 코드들을 순차적으로 실행하는 것이 Thread 입니다. Thread 는 Task Schedule..