본문 바로가기

Study Output for Myself/Computer Science

(11)
[CS]TCP 개인공부 정리의 용도이니 정확한 정보를 알고 싶으시다면 다른 사이트를 방문하시기 바랍니다. https://ko.wikipedia.org/wiki/%EC%A0%84%EC%86%A1_%EC%A0%9C%EC%96%B4_%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C - http://www.ktword.co.kr/test/view/view.php?m_temp1=347 TCP(Transmission Control Protocol) - 서버와 클라이언트가 통신하기 위한 네트워크 방법 - 연결지향성 프로토콜 - 논리적 통신 - 패킷 통신 - 해더의 컨트롤비트에 여러 정보(데이터의 번호, 남은 공간의 크기 등)를 담아서 왔다갔다 함. 서버와 클라이언트가 데이터를 주고받기 위해서 연결되어야 하는데 그 ..
[CS] CPU스케줄링 CPU 스케줄링 메모리에 올라온 준비 상태의 스레드 중 하나에 CPU를 할당하는 일련의 과정. [스케줄링 알고리즘 목표] CPU 이용률 ↑ 준비 큐(ready queue)에 프로세스는 ↓ 응답 시간 ↓ 비선점형 방식(non-preemptive) -프로세스 스스로가 CPU 소유권을 포기 = 모든 스레드가 실행된 후 종료 -컨텍스트 스위칭으로 인한 부하가 적음. 종류 특징 단점 FCFS (First Come, First Served) 먼저 온것을 먼저 처리하는 알고리즘. 수행시간이 긴 프로세스가 있다면 다른 프로세스가 준비 큐에 오래 기다려야함. SJF (Shortest Job First) 실행 시간이 가장 짧은 프로세스 먼저 실행하는 알고리즘 긴 프로세스는 실행되지 않는 현상. 우선순위 프로세스마다 우선순..
[CS]스레드와 멀티스레딩 스레드란? 스레드는 프로세스(인스턴스)가 실행 가능한 가장 작은 단위(프로세스내 작업의 흐름) 프로세스가 할당받은 자원을 이용하는 실행의 단위 프로세스는 여러개의 스레드를 가질 수 있음 스레드 기준으로 프로세스 싱글 스레드 프로세스 멀티 스레드 기반 프로세스 왜 스레드가 필요한가?(https://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/4_Threads.html) 블록킹 없이 여러 작업들을 해야할 때 필요 현대 프로그래밍에서 매우 유용함. 프로세스가 서로 독립적인 여러 작업을 다룰 때 필요 javascript에서의 스레드, node js는 싱글스레드??모던 JavaScript는 추가적인스레드를 생성하는 방법을 제공, 각 스레드는 독립적으로 동작하면서 서로..
[CS]원시값과 객체의 메모리 저장 원시값(string, number, boolean)과 객체(object, array)는 각각 메모리에 저장되는 방식과 공간이 다르다. 원시값의 메모리 저장 가상메모리의 stack 영역에 저장된다. 원시값 : 변경불가능 객체의 메모리 저장 객체는 동적으로 할당되기 때문에 heap에 저장되고 stack에 heap영역에 저장된 주소가 저장된다. 객체(참조값): 변경가능 힙에 저장된 주소가 다르기 때문에 서로 다른 객체가 된다. 힙에 저장된 주소가 같기 때문에 같은 객체를 가르키게 되고 하나의 객체를 변경하면 힙에 저장된 객체가 변경되고 둘 다 변경된다.
[CS]메모리 할당 메모리 할당(Memory Allocation) 가상 메모리는 실제 메모리(Physical Memory)에 올라와 있지 않기 때문에 실제 메모리(RAM)에 올려서 CPU가 연산을 실행할 수 있게 하는 작업이 필요. 이 과정을 메모리 할당이라고 한다. 실제 메모리에 올라가면 그 때 물리적 주소(Pysical Address)가 생긴다. 1. 연속메모리 할당 프로세스를 하나의 덩어리로 프로세스 전체를 실제 메모리에 할당함. 전체를 다 올리기 때문에 가상메모리가 안 쓰임. 1-1. 고정크기할당 메모리(physcial memory)를 일정 크기로 나눠서 각 프로세스가 하나의 파티션에 할당됨. 크기가 작은 프로세스가 하나의 파티션에 할당되면 메모리 공간이 남는(hole) 낭비 발생. (내부 단편화) 크기가 큰 프로세..
[CS]가상메모리 가상 메모리(Virtual Memory) 하나의 프로세스는 하나의 가상 메모리를 가지고 있다. 말 그대로 실제로 RAM 위에 존재하는 메모리가 아님. 프로세스 안의 구조정도로 생각해도 될 듯. 주소는 0부터 시작. (0, 1, 2, 3…) 가상 메모리의 주소를 논리적 주소/가상 주소(Logical Address) 라고 한다. 코드 영역 컴파일 된 실행코드 저장 fixed size 데이터 영역 정적 변수(전역 변수, static 지역변수) 저장 fixed size 힙 영역 동적 할당 영역 (ex 객체 데이터) variable size 스택 영역 함수의 복귀 주소, 지역 변수. 함수의 return 값 저장 variable size
[CS]프로그래시브 랜더링이란? Progressive Rendering 중요한 요소를 우선적으로 가져와서 화면에 rendering해주고 나머지 것들을 순차적으로 server에 요청해 가져오는 rendering방식. 속도가 빠르고 화면에 빠르게 표시되어 사용자경험이 좋다. TTV와 TTI간 차이가 발생할 수 있다. 프로그레시브 렌더링은 컨텐츠를 가능한 빨리 표시하기 위해 성능을 향상시키는 기술이다. 인터넷 속도가 느리거나 불안정한 모바일 환경이 아직 많이 남아있기 때문에 이럴 때 유용하게 사용한다. 대표적으로 레이지 로딩이 있다. 이미지를 한 번에 로드하는 것이 아니라, 자바스크립트를 통해 사용자가 표시하려는 부분만 스크롤 시에 이미지를 로드하는 것이다.
[CS] 쿠키, 세션 상태정보 저장 장치 HTTP의 비연결성(connectionless), 비상태성(stateless)을 보안하는 상태정보 저장 장치들. HTTP는 서버의 자원을 절약하기 위해 사용자의 요청을 받고 응답한 후 연결을 끊고, 연결이 끊어지면 상태를 잊어버린다. 🍪쿠키(Cookie) 사용자 정보를 string 형태로 저장한 임시 파일 4KB 제한 있음. 더보기 이름: 각각의 쿠키를 구별하는데 사용되는 이름 값: 쿠키의 이름과 관련된 값 유효시간 도메인: 쿠키를 전송할 도메인 경로: 쿠키를 전송할 요청 경로 서버를 대신해 이런 정보들을 웹 브라우저에 저장. 사용자가 요청할 때 그 정보를 서버에 함께 보내서 서버가 사용자를 식별 할 수 있게 해줌. 더보기 ID저장, 로그인 상태 유지 일주일간 다시 보지 않기 쇼핑몰 ..