CS 70

[OS] 가상메모리(Virtual Memory)란?

가상메모리에 대해서 알아보기 전에, 우선 CPU부터 간략히 알아보자. 32bit CPU, 64bit CPU라는 말을 많이 들어보았을 것이다. 여기서 32bit와 64bit는 무엇일까? 바로. CPU가 접근할 수 있는 메모리(RAM) 주소범위이다. 1bit가 0 과 1 , 2가지 경우를 표현하므로 32bit는 232가지 경우를 표현할 수 있다. 1GB는 230 가지 경우를 표현하므로, 232 = 22 x 230 = 4GB 정리하면, 32bit CPU는 4GB 메모리에 접근 가능하고 64bit CPU는 264 = 232 x 232 = 4GB X 4GB = 16GB 메모리에 접근가능하다. 그럼 이제 32bit CPU를 예로 들어 가상메모리 기법에 대해서 알아보자. ( 64bit도 원리는 동일하다. ) 가상메모..

CS/OS 2024.01.25

[OS] 비동기(Async)와 동기(Sync)

비동기(Async)와 동기(Sync) 비동기(Async)란 지금 당장 호출(call)은 해야 하지만 결과는 나중에(back) 받아도 되는 경우에 사용된다. 반대로 동기(Sync)는 지금 요청하고 결과도 받아야 하는 경우 사용한다. 예를들어, 요리에 바쁜 어머니가 아들한테 그릇 세팅하라고 시키는 것은 비동기이다. 그릇은 미리 세팅되어 있으면 좋다. 그래서 어머니 스레드는 아들 스레드에게 그릇세팅 로직을 호출(CALL) 했고 아들은 어머니가 요리하고 있는 사이 그릇 세팅을 완료한 다음 어머니에게 알린다(Back). 요리가 끝난 어머니는 세팅되어 있는 그릇에 음식을 담는다. 동기(Sync)의 경우, 라면을 끓일 때, 스프를 넣고 물이 끓어야 면을 넣는다. 이것은 동기다. 스프를 넣는 로직이 수행되고 물이 10..

CS/OS 2024.01.21

[OS] 멀티 프로세스 vs 멀티 스레드

[OS] 프로세스(Process)란 무엇일까? 개발자들은 고급언어( C, C++, JAVA, Python ... )으로 프로그램을 개발한다. 개발자가 고급언어로 소스코드를 작성하면 컴파일러는 소스코드를 컴파일하여 CPU가 이해할 수 있는 저급언어인 어셈블리 lordofkangs.tistory.com 지난 포스팅에서 Process에 대해서 다루어 보았다. Disk에 있는 Program을 CPU로 처리하려면 RAM에 메모리를 할당해야 한다. 메모리 할당은 Process 단위로 이루어진다. 메모리라는 독립적인 공간이 확보되면 CPU로 처리될 준비가 되었다고 볼 수 있다. 여기서 한 가지 고민해보자. 많은 프로그램이 병렬처리를 한다. 병렬처리를 구현하려면 어떻게 해야할까? 1) 멀티 프로세스 2) 멀티 스레드 ..

CS/OS 2024.01.18

[OS] 프로세스 스케줄링 ( Process Scheduling )

[OS] 프로세스(Process)란 무엇일까? 개발자들은 고급언어( C, C++, JAVA, Python ... )으로 프로그램을 개발한다. 개발자가 고급언어로 소스코드를 작성하면 컴파일러는 소스코드를 컴파일하여 CPU가 이해할 수 있는 저급언어인 어셈블리 lordofkangs.tistory.com [OS] PCB란 무엇일까? https://lordofkangs.tistory.com/614 [OS] 프로세스(Process)란 무엇일까? 개발자들은 고급언어( C, C++, JAVA, Python ... )으로 프로그램을 개발한다. 개발자가 고급언어로 소스코드를 작성하면 컴파일러는 소스코 lordofkangs.tistory.com 지난 포스팅에서 프로세스와 PCB에 대해서 다루어 보았다. Disk에 있는 프..

CS/OS 2024.01.17

[OS] PCB란 무엇일까?

https://lordofkangs.tistory.com/614 [OS] 프로세스(Process)란 무엇일까? 개발자들은 고급언어( C, C++, JAVA, Python ... )으로 프로그램을 개발한다. 개발자가 고급언어로 소스코드를 작성하면 컴파일러는 소스코드를 컴파일하여 CPU가 이해할 수 있는 저급언어인 어셈블리 lordofkangs.tistory.com 프로세스(Process)는 CPU가 처리할 수 있도록 RAM 메모리에 할당된 프로그램의 단위이다. 프로세스는 소프트웨어로 다양하다. 그러나 하드웨어인 CPU는 한정되어 있다. 그러므로 프로세스A가 CPU를 점유하고 있으면 스케줄링 정책에 따라 프로세스B로 컨텍스트 스위칭(Context Switching)을 일으켜야 한다. 이렇듯 OS는 CPU 자..

CS/OS 2024.01.15

[OS] 프로세스(Process)란 무엇일까?

개발자들은 고급언어( C, C++, JAVA, Python ... )으로 프로그램을 개발한다. 개발자가 고급언어로 소스코드를 작성하면 컴파일러는 소스코드를 컴파일하여 CPU가 이해할 수 있는 저급언어인 어셈블리어로 변환하고 어셈블러는 어셈블리어를 컴퓨터가 이해할 수 있도록 1과0 변환한 다음 링커가 동작하여 참조하는 라이브러리와 함께 엮으면 실행 가능한 파일(Excutable File)이 만들어 진다. 그리고 실행가능한 파일은 Disk에 저장된다. 이렇게 Disk에 저장된 실행가능한 파일을 두고, 우리는 프로그램(Program)이라 부른다. 그렇다면 프로세스(Process)란 무엇일까? Disk는 크기가 크고 I/O가 느려 CPU와 일할 수 없다. 그래서 CPU와 Disk 사이에는 RAM이 존재한다. D..

CS/OS 2024.01.15

[Network] VLSM ( Variable Length Subnet Mask )

[Network] 서브넷 마스크 이해하기 ( Subnet Mask ) IP는 장비에 부여되는 가변적인 주소이다. 동일한 영역에 모여있는 장비는 연결되어 네트워크를 형성하는데, 이를 LAN(Local Area Network)이라 부른다. LAN의 입구 역할은 라우터가 하는데, 이를 게이 lordofkangs.tistory.com 지난 포스팅에서 서브넷 마스크를 29로 하여 6개의 장비에 IP를 부여해보았다. 네트워크주소 브로드캐스트주소 호스트주소 부여 가능한 IP 203.230.8.0 203.230.8.7 203.230.8.1 ~ 203.230.8.6 할당완료(0개) 203.230.8.8 203.230.8.15 203.230.8.9 ~ 203.230.8.14 6개 203.230.8.16 203.230.8...

CS/NETWORK 2023.09.14

[Network] 서브넷 마스크 이해하기 ( Subnet Mask )

IP는 장비에 부여되는 가변적인 주소이다. 동일한 영역에 모여있는 장비는 연결되어 네트워크를 형성하는데, 이를 LAN(Local Area Network)이라 부른다. LAN의 입구 역할은 라우터가 하는데, 이를 게이트웨이(Gateway)라 부른다. 그러므로 한 LAN에서 다른 LAN으로 데이터를 전송하려면 우선 게이트웨이가 위치한 네트워크에 도착해야 한다. 집주소를 떠올리면 이해가 쉽다. 경복궁을 간다고 가정해보자. 경복궁 주소는 아래와 같다. 서울특별시 종로구 / 사직로 161 경복궁에 가려면 우선 서울특별시 종로구(네트워크 주소)에 가야한다. 그리고 상세주소인 사직로 161(호스트 주소)을 찾아가야 한다. IP도 마찬가지이다. 우선 네트워크를 찾아가야 되고 게이트웨이에 입성하면 호스트 주소로 장비를 ..

CS/NETWORK 2023.09.14

MacBook에서 한영키 및 대소문자 전환 윈도우랑 맞추기

맥에서 가장 적응 안 되는 부분은 한/영 및 대소문자 전환이다. Capslock을 누르면 한/영 전환이 되고 길게 누르면 대소문자 전환이 된다. 이런 방식은 우리에게 익숙치 않으니, 윈도우와 동일하게 바꾸어 보자. 버전정보 : macOS Ventura 13 1. 한/영 전환 '이전 입력 소스 선택'은 한/영 전환을 의미한다. 한/영 전환은 Ctrl + SpaceBar이다. 이를 윈도우 한/영 전환키 위치인 right command로 바꾸려고 한다. 하지만 눌러보면 command키로 수정이 안 됨을 확인할 수 있다. 그래서 외부프로그램 도움을 받아야 한다. Karabiner-Elements A powerful and stable keyboard customizer for macOS. karabiner-el..

CS/IT지식 2023.03.31

[빅데이터] 애널리스틱스 (Analytics)

애널리틱스(Analytics) 실시간으로 유입되는 데이터를 분석해서 더 나은 결정을 내리는 것 아무리 데이터가 풍부해도 명확한 분석기법이 따르지 않으면 쉽고 빠른 의사결정을 내릴 수 없음 데이터 마이닝과 애널리틱스의 차이점 데이터 마이닝 : 데이터로부터 가치를 추출하고 결과를 분석하는 기술 애널리틱스 : 에측기능, 통계분석, 확률분석 등의 데이터 기반 의사결정을 가능케 함 마케팅 애널리틱스 증거기반 마케팅 결정과 차별화된 경쟁력 확보하여 시장의 트렌드를 읽어낼 수 있다. 고객 데이터 1. 업무상 데이터 : 이메일, 생일, 주소 같은 소셜미디어 가입시 필요한 데이터 2. 신체 데이터 : 키, 몸무게 3. 보안 데이터 : 소득 수준, 휴대폰 번호, 신용카드 4. 개인 상세 데이터 : 종교, 정치색, 신조, ..

CS/빅데이터 2021.12.17