분류 전체보기(222)
-
[운영체제 개정3판] 3) 운영체제의 소개
기능 자원관리 메모리 관리: 메인 메모리(직접 주소로 지정), 보조기억장치 관리 프로세스 관리: 프로세스는 실행 중인 하나의 프로그램(일괄 처리 작업)을 의미함, 얘와 스레드를 스케줄링 함. 그리고 새로 만들고 없앰. 또한 데드락을 방지하도록 하고 통신도 함. 입출력 장치 관리: 버퍼나 캐시 파일 데이터 관리 시스템관리 시스템보호, 네트워킹, 명력해석기 등 서비스 부팅 서비스: 운영체제를 메인 메모리에 적재, bootstrapping이라함 사용자 서비스: CLI, GUI, 프로그램 실행 , 통신 등 시스템 서비스, 시스템 호출
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 -
[정리] babel과 webpack
얘는 원래 자바스크립트 항목인데 리액트에서 하도 많이 쓰길래... babel은 자바스크립트 컴파일러다 레가시 브라우저는 보통 ES5버전의 자바스크립트를 동작시킨다. 하지만 프론트 기술이 너무 빨리 발전하면서 다양한 자바스크립트 문법 및 기능들이 등장했다. 따라서 최근에 만든 웹페이지들은 레가시 브라우저에서 동작이 힘들다 이에 대한 보완을 위해 babel을 사용한다. 즉, 최신 자바스크립트 코드를 ES5 환경에서 돌아가도록 컴파일하는 것이다. 우리가 보편적으로 알고있는 컴파일과 달리 언어->언어 컴파일러라고 할 수 있다 대충 이런과정을 거친다 자바스크립트 V8엔진이 돌아가는 방식과 뭔가 비슷해 보인다. babel plugin이나 preset같은 개념도 있지만, 여기선 폴리필만 언급해본다. 바벨-폴리필은 코..
2021.01.06 -
[정리] async-await와 promise의 관계
트렌디한 문법을 사용하는 것이 좋아보이니까, 그리고 보편적으로 권장되는 일이니까 나도 async-await를 거의 남발하듯 쓴다. 근데 그리 하다 보니 자꾸 Promise를 간과하는 것 같아서 한번 정리 해보는 목적의 글! 우리가 쓰는 모든 async라는 꼭지가 달린 async함수는 promise를 리턴한다 그리고 모든 await 함수는 promise가 된다 promise는 객체안에 객체를 가지고 있는 일종의 중첩객체인데 promise라는 객체는 모든 함수에 대해 만들 수 있다. 얘들은 일반적으로 then()을 통해 받을 수 있고, 에러는 catch()를 통해 처리된다. 예컨데 getUsers는 콜백함수가 묶여있고, getUsers()는 promise를 리턴하는 함수라고 하자 즉, getUsers()가 ..
2021.01.06 -
[Array] Replace Elements with Greatest Element on Right Side
Given an array arr, replace every element in that array with the greatest element among the elements to its right, and replace the last element with -1. After doing so, return the array. 문제 자체는 간단하다. 특정 element에 대해, 그 오른쪽에 있는 원소들의 크기를 가늠한 후, 가장 크기가 큰 원소의 값으로 대체하는 것. 이러한 문제는 사실 배열을 다룰 때, 공간복잡도를 최소화하기 위한 예시로 많이 쓰인다. 흔히 In-place Array Operation이라 한다. 새로운 배열을 만들어 조건대로 원소를 꾸리면 좋겠지만, 이는 메모리 할당으로 인해 쓸데..
2021.01.06