본문 바로가기

전체 글70

WIL 2 Argument Passinguser 프로그램이 실행되기 전에 프로그램에 대한 인자를 설정ex) "/bin/ls -l foo bar" 인자 처리1. 명령어 분할 : /bin/ls, -l, foo, bar2. 문자열과 null 포인터를 스택 오른쪽에서 왼쪽으로 푸시argv[0]를 가장 낮은 가상 주소에 위치성능을 위해 첫 번째 푸시 전에 스택 포인터를 8의 배수로 내림하여 정렬3. %rsi를 argv로 지정하고 %rdi를 argc로 설정4. fake return address 푸시 1. command line을 parsing해서 file_name을 찾는다tid_t process_create_initd(const char *file_name){ ... // Argument Passing ~ .. 2024. 10. 7.
WIL 목표 :우선순위가 높은 스레드가 먼저 CPU를 점유할 수 있도록 Priority Scheduling을 구현한다. 스레드들은 각 우선순위에 따라 ready list에 추가현재 실행 중인 스레드의 우선순위보다 높은 우선순위의 스레드가 추가되면,현재 실행 중인 스레드는 바로 CPU 양도스레드는 언제든지 자신의 우선순위를 변경할 수 있다.우선순위를 낮추어 가장 높지 않으면 즉시 양도대기하고 있는 스레드가 여러 개면, 가장 높은 스레드가 깨야 한다새로운 thread의 우선순위가 높으면 선점기존 pintos에서는 ready_list에 새로운 thread가 삽입 되어도 선점xpintos는 ready list에 삽입된 순으로 thread가 CPU 점유  WIL :설명만 듣는것 하고 직접 구현은 차원이 다른 문제였다.한.. 2024. 10. 1.
Group Anagrams (Medium) 문제Given an array of strings strs, group the anagramsntogether.  You can return the answer in any order. Example 1: Input: strs = ["eat","tea","tan","ate","nat","bat"] Output: [["bat"],["nat","tan"],["ate","eat","tea"]] Explanation: There is no string in strs that can be rearranged to form "bat". The strings "nat" and "tan" are anagrams as they can be rearranged to form each other. The strings "a.. 2024. 9. 28.
21 빌트인 객체 자바 스크립트 객체의 분류표준 빌트인 객체 (standard built-in objects / native objects / global objects)전역의 공통 기능을 제공. 실행 환경과 관계없이 언제나 사용 가능별도의 선언 없이 전역 변수처럼 언제나 참조할 수 있다호스트 객체 (host objects)실행 환경에서 추가로 제공하는 객체사용자 정의 객체 (user-defined objects)사용자가 직접 정의한 객체표준 빌트인 갱체JS는 40여개의 표준 빌트인 객체를 제공.Math, Reflect, JSON을 제외한 표준 빌트인 객체는 모두 인스턴스를 생성할 수 있는 생성자 함수 객체.생성자 함수 객체인 표준 빌트인 객체는 프로토타입 메서드와 정적 메서드를 제공아니면 정적 메소드만 제공 래퍼 객체(.. 2024. 9. 28.
20 strict mode 암묵적 전역(implicit global)JS엔진은 암묵적으로 전역 객체에 x 프로퍼티를 동적 생성한다. x프로퍼티는 마치 전역 변수처럼 사용할 수 있다.function foo() { x = 10;}foo();console.log(x); // 10 린트 도구를 사용하자! (ESLint) strict mode 적용전역의 선두 or 함수 몸체의 선두에 'use strict'; 를 추가한다.왠만하면 전역에 쓰지말자. 라이브러리 사용하는 경우 오류 날 수도 있음함수 단위로도 쓰지말자. 번거롭다즉시 실행 함수로 감싼 스크립트 단위로 적용하는 것이 좋다. delete 연산자로 변수, 함수, 매개변수를 삭제하면 SyntaxError(function () { 'use strict'; var x = 1; dele.. 2024. 9. 28.
19 프로토타입 (2) instanceof 연산자이항 연산자로서 좌변에 객체를 가리키는 식별자, 우변에 생성자 함수를 가리키는 식별자를 피연산자로 받음우변의 피연산자가 함수가 아닌 경우 TypeError객체 instanceof 생성자 함수 우변의 생성자 함수의 prototype에 바인딩된 객체가 좌변의 객체의 프로토타입 체인 상에 존재하면 true그렇지 않으면 false로 평가 된다 // 생성자 함수function Person(name) { this.name = name;}const me = new Person('Lee');// 프로토타입으로 교체할 객체const parent = {};// 프로토타입의 교체Object.setPrototypeOf(me, parent);// Person 생성자 함수와 parent 객체는 연결되어.. 2024. 9. 28.