목록CS (21)
holy's story

Process ManagementCPU가 프로세스가 여러 개일 때, CPU 스케줄링을 통해 관리하는 것이때, CPU는 각 프로세스들이 누군지 알아야 관리가 가능합니다.이러한 프로세스들의 특징을 갖고 있는 것이 바로 Process MetadataPCB란?Process Controll Block으로, 프로세스 메타데이터를 저장해두는 공간하나의 PCB안에는 하나의 프로세스에 대한 정보만 담겨있다.프로세스는 커널이 관리자원할당, 작업 관리, 협력 등을 맡아 처리커널이 중간관리자, 프로세스가 실무자커널은 pcb의 정보를 보고 프로세스를 관리하게 됨왜 pcb를 사용할까?프로세스 상태관리와 context switching을 위해context switching 이후 다시 돌아와 작업할 때 작업 내용이 날라가있으면 새로..

요구 페이징이란?운영체제에서 사용되는 가상 메모리 관리 기법중 하나프로세스가 실행되면 운영체제는 해당 프로세스의 가상 주소 공간을 만드는데, 이때 필요한 페이지만 물리적 메모리에 적재 후 나머지는 backing store에 저장하여 메모리를 절약요구페이징의 방식가상 메모리는 요구 페이징 기법을 사용하여 필요한 페이지만 메모리에 올림 (프로세스는 페이지의 집합)사용하지 않는 페이지들은 backing store에 저장backing store는 swap device로 하드웨어 부분인데 페이지를 임시로 보관하는 공간스왑 파일(Swap File)이라는 디스크의 특수한 파일에 위치페이지 테이블은 메인 메모리에 적재되어 있는지 backing store에 있는지를 구분하는 valid 비트를 가지게 된다.메인 메모리에 ..

해시란?해시(Hash)는 입력 데이터를 고정된 길이의 데이터로 변환된 값해시 함수에 의해 얻게 되며, 다른 말로는 해시값, 해시코드, 체크섬이라고 함간단하게 말하자면, 데이터의 KEY 값이 해시 함수를 통해서 변환된 간단한 정수이렇게 정수로 변환된 해시는 배열의 인덱스, 위치, 데이터 값을 저장하거나 검색할 때 활용해시 함수란?해시 함수는 데이터를 고정된 크기의 고유한 값으로 변환시키는 함수.해시는 보안, 검색, 데이터베이스 등 다양한 분야에서 사용되며, 주로 데이터의 무결성 검증이나 데이터의 일치 여부를 확인하기 위해 사용.해시 함수는 입력값의 길이가 달라도 항상 일정한 길이의 값을 출력하고 이때 출력값은 고유한 값이므로 같은 입력값에 대해서는 항상 같은 해시값이 출력됨.해시 함수의 일반적 특징입력값이..

출처(Origin)의 정의SOP와 CORS에 대하여 이야기 하기 전에, 두 개념과 관련된 출처(Origin)에 대해 짚고 넘어가자.출처는 프로토콜(Protocol or Scheme), 호스트(Host), 포트(Port)로 구성되어 있고 모두 같아야 동일한 출처라고 말한다.https://www.domain.com:443에서 https:// 는 프로토콜, www.domain.com은 호스트, :443은 포트에 해당한다. 웹에서 f12눌러서(Mac은 fn+12) Console 창에서 다음과 같이 document.location.origin이라고 치면 해당 출처를 확인할 수 있다.# 같은 출처와 다른 출처의 판단ex) https://www.naver.com:8080Scheme : https://Host : ww..

Call by Value vs Call by Reference 예시) Call by Value 하얀 강아지가 있음. 이 강아지를 염색시키려면 똑같은 강아지 하나를 더 데리고 오기. 그리고 새로 데려온 강아지를 염색시킴 결국 흰강아지 한마리, 검은 강아지 한마리의 상태가 됨 Call by Reference 하얀 강아지가 있음 이 강아지를 염색시킴. 흰 강아지는 사라지고 검은 강아지만 남게 됨 Call by Value 값에 의한 호출 값을 복사하여 사용하기 때문에 원래의 값은 변경되지 않음 복사하여 사용하기 때문에 메모리는 많이 잡아먹음 하지만 원래의 값은 보존되기 때문에 안전함 기본 자료형 : call by value 로 동작 (Boolean Type(boolean), Numeric Type(short, ..
트리거(Trigger)란? 방아쇠가 당겨지면 총알이 나가듯이 특정 이벤트가 발생하면 미리 설정된 작업이 쭈르륵 실행되는 것을 의미함 트리거(trigger): 어떤 트랜잭션이 일어나면 거기에 반응해서 다른 명령을 실행하게 하는 기능 프로시저와 다른점 순차적으로 발생되지 않고 설정해두면 보고있다가 동작이 수행될 때를 잡아서 실행된다. 트리거는 매 이벤트(INSERT | UPDATE | DELETE)마다 동일하게 처리하여 적용하는 경우 사용하고 프로시저는 그렇지 않은 경우 사용한다. 예를 들어 통신사가 회원 등급을 결정할 때 전년도 사용 비용을 기준으로 처리하기 때문에 회원 등급을 결정하는 처리를 트리거가 아닌 프로시저로 해야한다. 트리거, 언제 사용할까? 장바구니에 있던 상품을 주문시켰을 때 장바구니에서는 ..

인덱스 (index) 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상 데이터 주소값을 저장해두어 빠르게 찾을수있도록 함 DB 테이블에 인덱스(index)가 필요한 이유 🧐 만약 table에 index를 걸지 않으면 어떻게 될까? SELECT *FROM customerWHERE first_name = "smith"; 원하는 데이터를 찾고 싶을 때 table 전체를 full scan 해야 한다. 즉, first_name에 index가 걸려있지 않다면 “smith"을 찾기 위해서는 모든 데이터를 하나씩 확인해야 한다. full scan은 시간이 오래 걸리기 때문에 서비스에 좋지 않은 영향을 끼친다. 💡 index를 쓰는 이유 조건을 만족하는 튜플(들)을 하기 위해서! 빠르게 ..

B-tree란? Balanced-Tree 균형 트리로 루트로부터 리프까지의 거리가 일정한 트리 구조 이렇게 균형을 유지할 경우 어떤 데이터를 검색할 때 빠른 속도로 데이터 검색 가능 00차 트리 → 최대 자식수가 00개 B-트리의 특징 B트리는 이진트리와 다르게 하나의 노드에 많은 수의 정보를 가질 수 있습니다. 최대 M개의 자식을 가질 수 있는 B-트리를 M차 B-트리라고 합니다. 노드는 최대 M개의 자식 노드를 가질 수 있다. ex) 3차 B-트리라면 최대 3개의 자식 노드를 가질 수 있다. 노드에는 최대 M-1개의 KEY를 가질 수 있다. ex) 3차 B-트리라면 최대 2개의 KEY를 가질 수 있다. 각 노드는 최소 M/2개의 자식 노드를 가진다. (루트 노드와 leaf 노드 제외) ex) 3차 B..