반응형

개발공부 40

[독서] 코어자바스크립트 3장

this?이게 왜 어렵나 하면, 그때그때 다른값을 가르키기때문이다. 자바스크립트 전역컨객체를 가리킨다. 함수 vs 메서드 thisthis가 어려운 이유는 아래와 같다.var obj = { outer: function () { console.log(this); var inner = function () { console.log(this); }; inner(); var obj2 = { innerMethod: inner, }; obj2.innerMethod(); },};obj.outer();/// 응답값 // {outer: ƒ}// Window {0: global, window: Window, self: Window, document: document..

개발공부/BOOKS 2025.03.19

[독서] 코어 자바스크립트(2장)

실행컨텍스트란? 실행할 코드에 제공할 환경 정보들을 모아놓은 객체. 실행컨텍스트는 기본적으로 stack방식으로 진행되며그 내부에는 this binding, variable enviroment, lexical enviroment로 구성.이중 variable enviroment, lexical enviroment 내부에는 enviromentRecord와 hoisting이 들어 있는데,enviromentRecord 내부에는 식별자(변수명)들이 저장됨.이때, 호이스팅이 진행되어 사용될 변수, 함수들이 최상으로 끌어올려지게 작동됩니다. 해당 내용이 적용되면 코드를 한줄한줄 파서 할때랑 다르게 작동됩니다. 함수선언문은 함수표현식과 다르게 해당 내용이 중복될 경우 덧씌워버리지만 에러가 작동되지 않는다.그러나 표현식의..

개발공부/BOOKS 2025.03.17

[독서] 코어 자바스크립트(1장)

자바스크립트 데이터 타입기본형(number, string, boolean, null, undefined, symbol)과참조형(object, array, function, date, regexp, Map, WeakMap, Set, WeakSet)이 존재함.  변수는 변할수있는 수식별자 변수의 이름. 변수를 선언let a; 변수 데이터 할당a = 'Hello World'; 이렇게 진행할 경우 메모리영역에서 아래와 같이 진행된다.변수 주소1000100110021003데이터 이름 : a값 : @3000  데이터 주소3000300130023003데이터"Hello World"   위와 같이 데이터영역과 변수 영역이 나누어진 이유는메모리의 낭비를 줄이기 위함과 가변적 메모리 길이에 대응하기 위함 위의 내용처럼 변수..

개발공부/BOOKS 2025.03.17

[운영체제] PC Register를 스레드마다 독립적 할당하는 이유는?

PC (Program Counter) Register를 스레드마다 독립적으로 할당하는 이유는 각 스레드가 독립적인 실행 흐름을 가지기 위해서입니다. **프로그램 카운터(PC)**는 현재 실행 중인 명령어의 메모리 주소를 가리키는 레지스터로, 각 스레드가 어디서 실행을 중단했는지, 또는 어느 명령어에서 실행을 계속해야 하는지를 관리합니다.따라서 각 스레드마다 독립적인 PC 레지스터를 할당해야 하는 이유는 다음과 같습니다:1. 스레드마다 독립적인 실행 흐름 보장각 스레드는 독립적인 실행 흐름을 가집니다. 즉, 각 스레드는 자신만의 명령어 순서를 따라 실행됩니다.PC 레지스터는 현재 실행 중인 명령어의 주소를 저장하고 있기 때문에, 각 스레드는 자신의 실행 흐름에 맞는 고유한 프로그램 카운터를 가져야 합니다...

개발공부/CS 2025.02.16

[운영체제] 스택을 스레드마다 독립적으로 할당하는 이유?

스택을 스레드마다 독립적으로 할당하는 이유는 각 스레드가 독립적으로 실행되고 자신만의 호출 스택을 사용해야 하기 때문입니다.이를 통해 스레드들이 다른 스레드의 실행 상태와 충돌 없이 독립적으로 작업을 수행할 수 있습니다.구체적인 이유는 다음과 같습니다:1. 독립적인 실행 흐름각 스레드는 자신만의 실행 흐름을 가집니다. 즉, 각 스레드는 자신이 호출한 함수나 메서드의 반환 주소, 지역 변수 등 고유한 실행 상태를 유지해야 합니다.스택은 함수 호출 시마다 해당 함수의 지역 변수, 반환 주소 등을 저장하는데, 만약 여러 스레드가 동일한 스택을 공유하면, 스레드 간에 데이터가 충돌하거나 덮어쓰여 문제가 발생할 수 있습니다.따라서, 각 스레드는 자신만의 스택을 가져야만 독립적인 실행 흐름을 유지할 수 있습니다.2..

개발공부/CS 2025.02.16

[운영체제] pcb에 저장되는 정보는?

**PCB (Process Control Block)**에는 운영 체제가 각 프로세스를 관리하기 위해 필요한 다양한 정보가 저장됩니다.이 정보들은 주로 프로세스 상태, 실행 정보, 메모리 관리 정보 등을 포함하여, 프로세스가 제대로 실행되고, 컨텍스트 스위칭 시 필요한 정보를 복원할 수 있게 합니다. PCB에 저장되는 주요 정보는 다음과 같습니다:1. 프로세스 식별 정보프로세스 ID (PID): 프로세스를 고유하게 식별하는 번호입니다. 이 ID는 운영 체제가 프로세스를 추적하는 데 사용됩니다.부모 프로세스 ID (PPID): 프로세스를 생성한 부모 프로세스의 ID입니다. 이는 프로세스 간의 계층적 관계를 파악하는 데 사용됩니다.프로세스 그룹 ID: 동일한 그룹에 속하는 프로세스들을 묶어서 관리하는데 사용..

개발공부/CS 2025.02.16

[운영체제] 프로세스 제어 블록 (Process Control Block, PCB)

**프로세스 제어 블록 (Process Control Block, PCB)**은 운영 체제에서 각 프로세스를 관리하는 데 필요한 중요한 정보를 저장하는 데이터 구조입니다.PCB는 각 프로세스에 대한 상태, 제어 정보, 메모리 정보 등을 포함하고 있어,운영 체제가 프로세스를 효율적으로 관리하고, 컨텍스트 스위칭(context switching) 시 해당 프로세스의 상태를 복원할 수 있도록 합니다.1. PCB의 주요 구성 요소PCB는 프로세스의 실행과 관련된 다양한 정보를 포함하고 있으며, 보통 다음과 같은 필드들로 구성됩니다:프로세스 ID (Process ID, PID):각 프로세스를 고유하게 식별하는 번호입니다. 운영 체제는 이 PID를 사용하여 프로세스를 추적하고 관리합니다.프로세스 상태 (Proces..

개발공부/CS 2025.02.16

[운영체제] LRU (Least Recently Used)

**LRU (Least Recently Used)**는 캐시 교체 알고리즘 중 하나로, 가장 오랫동안 사용되지 않은 데이터를 우선적으로 제거하는 방식입니다. 이 알고리즘은 메모리나 캐시에서 데이터를 효율적으로 관리하기 위해 사용됩니다. 데이터가 캐시 또는 메모리에 일정 시간 동안 저장된 후, 다시 참조되지 않으면 그 데이터를 제거하고, 새로운 데이터를 저장하는 방식입니다.1. LRU의 기본 원리LRU 알고리즘의 기본 아이디어는 최근에 사용된 데이터를 우선적으로 유지하고, 가장 오랫동안 사용되지 않은 데이터를 제거하는 것입니다. 즉, 가장 오래된 데이터를 먼저 교체하는 방식입니다.2. LRU 동작 방식LRU는 데이터를 사용한 순서를 추적하여, 가장 오랫동안 사용되지 않은 데이터를 교체합니다. 이 알고리즘은..

개발공부/CS 2025.02.16

[운영체제] 메모리구조

메모리 구조는 컴퓨터 시스템에서 데이터를 저장하고 관리하는 방식을 의미합니다.메모리는 여러 레벨로 나뉘며, 각 레벨은 속도, 용량, 접근 방식 등이 다릅니다.주로 주기억장치(RAM)와 보조기억장치(하드디스크, SSD 등)로 구분되며,이들을 효과적으로 관리하기 위한 다양한 계층적 구조를 가지고 있습니다.1. 메모리 계층 구조컴퓨터 시스템에서 메모리는 여러 계층을 이루어 효율적인 데이터 접근과 관리가 이루어집니다. 일반적으로 사용되는 메모리 계층은 다음과 같습니다:레지스터 (Registers):CPU 내부에 위치한 가장 빠른 메모리입니다. CPU가 직접 접근하여 데이터를 처리하는 데 사용되며, 수십 개의 레지스터가 존재합니다.레지스터는 CPU의 명령어와 데이터를 처리하는 데 필요한 최소한의 데이터를 저장합니..

개발공부/CS 2025.02.16

[운영체제] 데드락이란?

**데드락(Deadlock)**은 두 개 이상의 프로세스나 스레드가 서로 자원을 기다리며 무한정 대기 상태에 빠지는 현상을 말합니다.데드락이 발생하면 각 프로세스가 필요한 자원을 얻을 수 없어 실행이 중단되며,이로 인해 시스템 전체가 멈추게 되는 상황이 발생할 수 있습니다.1. 데드락 발생 조건 (4대 필수 조건)데드락이 발생하기 위한 조건은 다음 네 가지가 동시에 충족되어야 합니다:상호 배제(Mutual Exclusion):자원은 한 번에 한 프로세스만 사용할 수 있어야 한다는 조건입니다. 즉, 자원이 배타적으로 할당되어 있어, 동시에 여러 프로세스가 하나의 자원을 사용할 수 없습니다.점유와 대기(Hold and Wait):프로세스가 자원을 점유한 상태에서 다른 자원을 기다리는 조건입니다. 즉, 프로세..

개발공부/CS 2025.02.16
728x90