프로그래밍-Science/운영체제(5)
-
[운영체제 개정 3판] 4) 프로세스와 스레드
프로세스 - 다중 프로그래밍 환경에서는 여러 프로그램을 메모리에 적재하여 병렬 실행 - 비동기적 행위 - 프로세스: 실행 중인 프로그램-> 실행중: 디스크에 있던 프로그램을 메모리에 올려 OS가 제어하는 상태 (예컨데 브라우저 2개를 열면 프로세스 2개가 열림) - 즉, 실행중인 프로그램의 인스턴스 스레드 - 프로세스 내에서 실행되는 여러 흐름의 단위 - Code, Data, Heap을 공유하나, 스레드 실행 환경정보, 지역 데이터, 스택은 독립적 - 사용예시: 워드 문서 작성시 텍스트 view / 백업/ 사용자 키입력이 별개의 스레드
2021.01.07 -
[운영체제 개정3판] 2) 컴퓨터 시스템의 동작
컴퓨터 시스템의 작업처리 순서 입력장치로 정보 받기-> 메모리에 저장-> 저장된 데이터를 제어에 따라 인출-> 연산장치가 처리-> 처리한 정보를 출력장치가 표시or 보조기억장치에 저장 컴퓨터에 유입되는 정보 명령어 연산자(실행할 연산), , 피연산자(데이터(명령어가 처리할 데이터)와 데이터를 저장한 메모리나 레지스터 주소) 보통 명령부(연산자)-주소부(피연산자)로 구성되어 있다 연산자 피연산자: 보통 데이터 직접 저장 안하고 주소를 저장, 주소는 직접주소, 간접주소로 구분된다 실행 제어장치가 명령어를 실행 사이클 인출(fetch) 사이클 저장된 주소를 내부 버스를 이용하여 MAR(메모리 주소 레지스터)에 전달 주소에서 명령어를 인출하여 MBR(메모리 버퍼 레지스터)에 저장 제어장치가 저장된 내용 읽어 신..
2021.01.07 -
[운영체제 개정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