Computer_Language/Etc. 3

[Thread] 스레드란 무엇인가 (vs 프로세스)

스레드의 정의 스레드의 정의는 "프로세스 내에서 실행되는 여러 흐름의 단위"이다. *프로세스에 대해 잘 모른다면 여기를 참고 스레드의 특징 스레드는 프로세스 내에서 각각 Stack만 따로 할당받고 Code, Data, Heap 영역은 공유한다. 스레드는 한 프로세스 내에서 동작되는 여러 실행의 흐름으로, 프로세스 내의 주소 공간이나 자원들을 같은 프로세스 내에 스레드끼리 공유하면서 실행된다. 한 스레드가 프로세스 자원을 변경하면, 다른 이웃 스레드도 그 변경 결과를 즉시 볼 수 있다. 각각의 스레드는 별도의 레지스터와 스택을 가지고 있다. 스레드의 종류 스레드를 지원하는 주체에 따라 2가지로 나눌 수 있다. 사용자 레벨 스레드 (User-Level Thread) 사용자 스레드는 커널 영역의 상위에서 지원..

[Process] 프로세스란 무엇인가

프로세스(Process)란 컴퓨터에서 프로그램은 "특정 작업을 수행하는 일련의 명령어들의 모음"이다. 그렇다면 프로세스는 무엇인가? 프로세스는 다양한 종류의 프로그램 중 "실행 중인컴퓨터 프로그램"이다. 조금 더 자세하게 "운영체제로부터 시스템 자원을 할당받는 작업의 단위"라고 정의하기도 한다. *시스템 자원이란? - CPU 점유 시간 - Code, Data, Stack, Heap의 구조로 되어 잇는 독립된 메모리 영역 프로세스끼리는 서로 독립되어있기 때문에 서로 다른 프로세스의 메모리에 접근할 수 없다. 만약 다른 프로세스의 자원에 접근해야 한다면, IPC(Inter-Process-Communication)를 통해 접근할 수 있다. *대표적인 IPC의 종류 1. Signal 2. Pipe 3. Mess..

[DevOps] DevOps란 무엇인가

이미지 출처 : https://medium.com/@neonrocket/devops-is-a-culture-not-a-role-be1bed149b0 DevOps를 공부하기 위해 구글에 검색해보고 위키백과도 한번쯤은 읽어봤을 것이다. "Developement(개발)와 Operations(운영)의 합성어", "개발자와 운영자의 소통, 협업 및 통합을 강조하는 개발 환경이나 문화"라고 정의한다. 하지만 이 한 줄 정의만으론 DevOps에 대한 이미지가 그려지지 않았기에 내 방식대로 정리를 시작하게 됐다. DevOps의 배경 하나의 소프트웨어를 개발하면서 개발자와 운영자 사이에 갈등이 생긴다. 개발자는 고객의 요구에 따른 변경을 빠르게 보기를 원하고, 운영자는 속도 보단 안정성을 중요시하기 때문이다. 새로운 프..