Computing/Operating System 24

06 - 07 > Thread [쓰레드, 멀티 쓰레딩]

* 해당 게시물은 경북대학교 컴퓨터학부 강의초빙교수, 배준현 교수님의 강의를 보고 작성되었음을 미리 알려드립니다. ( 개인적인 공부를 정리한 글입니다. ) > 주니온 TV Youtube Channel. https://www.youtube.com/channel/UCOcPzXDWSrnaKXse9XOPiog 주니온TV 아무거나연구소 TMI Lab. 아무거나 연구소의 유튜브 TMI 지식나눔 채널 컴퓨팅 사고력을 키워 주고 코딩 지능을 길러 주는 자세히 보면 유익한 코딩 채널 주니온TV@Youtube 주니온 박사: 현) 경북대학교 컴퓨터학부 초 www.youtube.com > 주니온 TV Inflearn page. https://www.inflearn.com/users/@joonion 주니온님의 소개 - 인프런 ..

03 - 05 > Process [프로세스의 이해, 생성, 통신]

* 해당 게시물은 경북대학교 컴퓨터학부 강의초빙교수, 배준현 교수님의 강의를 보고 작성되었음을 미리 알려드립니다. ( 개인적인 공부를 정리한 글입니다. ) > 주니온 TV Youtube Channel. https://www.youtube.com/channel/UCOcPzXDWSrnaKXse9XOPiog 주니온TV 아무거나연구소 TMI Lab. 아무거나 연구소의 유튜브 TMI 지식나눔 채널 컴퓨팅 사고력을 키워 주고 코딩 지능을 길러 주는 자세히 보면 유익한 코딩 채널 주니온TV@Youtube 주니온 박사: 현) 경북대학교 컴퓨터학부 초 www.youtube.com > 주니온 TV Inflearn page. https://www.inflearn.com/users/@joonion 주니온님의 소개 - 인프런 ..

01 - 02 Intro [운영체제란?, 운영체제 개념과 구조]

* 해당 게시물은 경북대학교 컴퓨터학부 강의초빙교수, 배준현 교수님의 강의를 보고 작성되었음을 미리 알려드립니다. ( 개인적인 공부를 정리한 글입니다. ) > 주니온 TV Youtube Channel. https://www.youtube.com/channel/UCOcPzXDWSrnaKXse9XOPiog 주니온TV 아무거나연구소 TMI Lab. 아무거나 연구소의 유튜브 TMI 지식나눔 채널 컴퓨팅 사고력을 키워 주고 코딩 지능을 길러 주는 자세히 보면 유익한 코딩 채널 주니온TV@Youtube 주니온 박사: 현) 경북대학교 컴퓨터학부 초 www.youtube.com > 주니온 TV Inflearn page. https://www.inflearn.com/users/@joonion 주니온님의 소개 - 인프런 ..

[GNU] 정리.

GNU (GNU's Not Unix!) 운영체제의 하나이자 컴퓨터 소프트웨어의 모음집. https://ko.wikipedia.org/wiki/GNU GNU - 위키백과, 우리 모두의 백과사전 GNU개발자GNU 프로젝트 (커뮤니티 형성)프로그래밍 언어C, 어셈블리어OS 계열유닉스 계열소스 형태자유 소프트웨어마케팅 대상개인용 컴퓨터, 모바일 장치, 내장형 장치, 서버, 메인 프레임, 슈퍼 ko.wikipedia.org > MinGW 마이크로소프트 윈도우로 포팅한 GNU 소프트웨어 도구 모음이다. MinGW는 윈도 API를 구현할 수 있는 헤더 파일들을 가지고 있으며 이로써 개발자들이 "자유롭게 쓸 수 있는" 컴파일러인 GCC를 사용할 수 있다. 초장기 이름 : mingw32(Minimalist GNU for..

Memory Fragmentation. 메모리 단편화

RAM에서 메모리의 공간이 작은 조각으로 나뉘어져 사용가능한 메모리가 충분히 존재하지만, 할당(사용)이 불가능한 상태를 말한다. 이는 내부, 외부 2가지로 구분된다. Internal fragmentation. 내부 단편화 → 메모리를 할당할 때 프로세스가 필요한 양보다 더 큰 메모리가 할당되어서 프로세스에서 사용하는 메모리 공간이 낭비되는 상황. *A App이 실행될 때 OS는 4kb를 할당했지만, 정작 프로그램은 1kb만 사용하고 있음. 이때 3kb 만큼의 내부 단편화가 발생 External Fragmentation. 외부 단편화 → 메모리가 할당되고 해제되는 작업이 반복될 때 작은 메모리가 중간중간 존재하는데, 이 사용하지 않는 메모리들이 여럿 존재하여 총 메모리 공간은 충분하지만 실제로 할당할 수 ..

False sharing. 거짓 공유

CPU 내부의 코어와 코어간의 메모리 정보가 공유되어 하드웨어 적으로 병목현상이 일어나는 것을 뜻한다. 일반적인 CPU는 L1, L2 캐쉬가 코어에 있고 L3는 외부에 나와 있다. L3 캐시는 메모리로부터 data를 받아오고, 해당 데이터를 L2 → L1 순으로 전달하게 된다. L1 cache는 long long num1 과 long long num2 가 있다. cache는 자주 사용하는 데이터를 메모리까지 가지 않고 메모리 보다 빠른 cache에 저장함으로서 좀 더 빠르게 데이터를 처리하려 한다. CPU는 cache 라인에 따라 64byte로 통째로 읽어온다. 64byte를 통째로 읽어오면 Core 1에는 num1과 num2가 있다. Core2에는 num2의 시작 위치부터 읽어 오고 64byte이내에 ..

Race condition. 경쟁 상태

공햑 분야에서 둘 이상의 입력 또는 조작의 타이밍이나 순서 등이 결과값에 영향을 줄 수 있는 상태를 말한다. 두 개 이상의 프로세스가 공통 자원을 concurrently(병행적으로) 읽거나 쓰는 동작을 할 때, 순서에 따라 결과가 같지 않고 달라지는 상황을 이야기한다. race는 뜻 그대로, 경쟁하는 상태이고, 두 개 이상의 쓰레드가 하나의 공유 자원을 놓고 서로 사용하기 위해 경쟁하는 상황을 말한다. https://ko.wikipedia.org/wiki/경쟁_상태 https://iredays.tistory.com/125

Cache line.

CPU가 메모리로부터 데이터를 가져올 때 바이트 단위가 아닌 Cache line을 가득 채울 만큼의 데이터를 가져오는 것을 말한다. 메모리의 페이징 기법과 비슷하고, CPU에 따라 32, 64, 128 byte 로 구성되며 해당 사이즈 경계로 정렬되어 있다. Cache line을 사용하는 이유는 일반적인 app의 경우 인접한 byte들을 사용하는 경우가 많기에 cpu의 메모리 접근 횟수를 줄여 성능을 향상 시키기 위함이다. Cache line은 성능의 향상을 위해 도입되었지만, 멀티 프로세서 환경에서는 문제가 될 여지가 있다. 다수의 CPU가 동일한 Cache line을 보유하고 있고, 그 중 하나의 CPU가 해당 Cache line을 수정한다면 다른 CPU들은 해당 Cache line의 갱신을 어떻게 ..