프로그래밍-Science(15)
-
[운영체제 개정3판] 1) 컴퓨터 하드웨어의 구성
운영체제: 하드웨어를 관리하는 소프트웨어 하드웨어: 프로세서/ 메모리/ 주변장치로 구성, 이들을 시스템 버스로 연결 CPU가 뇌라면 메모리는 단기기억을 담당, 하드 디스크는 장기 기억을 담당 CPU가 머릿속의 기억을 떠올리는 행동이라면, 메모리는 책을 읽는 행동 메모리는 CPU가 하드디스크에 빠르게 접근할 수 있도록 현재 사용중인 데이터를 유지하는 저장장소임 프로세서(CPU): 하드웨어에 부착한 모든 장치의 동작을 제어하고 명령 실행, 내부버스로 하위 항목들을 연결, 수가 많을수록 빨리 처리 User-Visible 레지스터 데이터 레지스터: 함수 연산에 필요한 데이터 저장 주소 레지스터: 인덱스, 스택포인터 등 User-Invisible 레지스터 프로그램 카운터: 다음에 실행할 명령어 주소 보관 명령어 ..
2021.01.07 -
[전산공부] 프로세스 vs 쓰레드
워낙 자주나오는 비교대상들이기도 하고 노드 공부하다가 코어 여러개 사용하는 코드 알려주길래 막간을 이용하여 정리! 프로세스란? - 컴퓨터에서 연속적으로 실행되고 있는 프로그램 - 메모리에 올라와 실행되고 있는 독립적 개체(인스턴스라고도 한다!) - 동적으로는 실행된 프로그램을 의미한다 그럼 쓰레드는? - 프로세스내에서 실행되는 여러 흐름의 단위고 - 프로세스가 할당받을 자원을 이용하는 '실행'의 단위 그림으로 보면 이렇다 좌측그림기준으로 설명해보자면 어떤 운영체제는 여러가지 프로세스를 수행할 수 있고, 수행과정에서 각각 독립된 메모리 영역을 부여받는데 이를 Code, Data, Stack, Heap이라고 한다. - Code: 코드 자체를 구성하는 영역, 쉽게 말해 바이너리 파일 메모리 같은 것들이다. 기..
2020.02.23 -
[전산공부] 컴파일(compile) vs 빌드(build)
정말 익숙하고도 간단해보이는 단어들이지만 개발업무를 진행하다 보면 혼용하는 경우가 많다 그래서 간단히 정리! 1. 컴파일 개발자들은 '소스코드'를 작성한다 근데 멍청한 컴퓨터들은 소스코드를 읽을 수 없다 사람의 언어이기때문! 그래서 '컴파일'이라는 작업을 통해(컴파일러가 이 역할을 진행한다) 소스코드를 컴퓨터가 읽을 수 있는 바이너리 코드로 전환한다 그렇기때문에 컴파일을 하고나면 항상 목적파일이 뚝 떨어진다 자바같은 경우는 JVM이라는 자바가상머신에서 클래스 파일을 뚝 떨어뜨린다 내가 자주쓰는 JavaScript의 경우는 조금 더 특이하다 이놈은 토크나이징-파싱-코드생성이라는 세가지 단계를 거친다 '스캐너'의 경우 코드를 토큰(Token)으로 만드는 작업이다. var a = 2;라는 코드가 있다면, va..
2020.02.17