2024/07 17

PCB와 컨텍스트 스위칭

프로세스 관리구동중인 프로세스가 여러 개일 때, CPU 스케줄링을 통해 프로세스를 관리하는 것을 의미한다.  CPU들은 각 프로세스들에 대해서 구분할 수 있어야 관리가 가능하다. -> 프로세스들의 특징을 갖고 있는 Process Metadata를 활용한다. 프로세스 메타데이터가 담고있는 정보프로세스 고유 ID (PID)프로세스 상태프로세스 우선순위Program Counter (PC)CPU 레지스터OwnerMemory Limit기타 등등메타데이터는 프로세스가 생성될 떄마다 PCB (Process Control Block) 이라는 곳에 저장된다. PCB (Process Control Block)프로세스들의 메타데이터를 저장하는 곳.하나의 PCB 안에 하나의 프로세스 정보가 담기는 구조이다.프로그램 실행 → ..

cs 2024.07.30

프로세스의 메모리 구조

시스템은 프로그램을 실행할 때 해당 프로그램을 메모리에 로드한다. 프로세스실행되고 있는 프로그램으로, 프로세스는 각 메모리 공간을 시스템으로부터 할당받는다. 프로세스의 메모리 영역메모리는 코드, 데이터, 힙, 스택 영역으로 구성되어 있다. Code 영역실행할 프로그램의 코드가 저장된다.CPU는 코드 영역에서 명령어를 하나씩 가져와 처리하게 된다.컴파일 타임에 결정된다.중간에 코드 변경이 불가하도록 Read-Only로 되어있다.Data 영역전역변수와 정적변수 등 프로그램이 사용하는 데이터를 저장한다.이 변수들을 참조한 코드는 컴파일이 완료될 시 data 영역의 주소값을 가르키도록 바뀐다.변수가 변경될 수 있기 때문에, Read-Write로 되어있다. Data 영역은 다시 BSS 영역과 Data(GVAR) ..

cs 2024.07.30

페이지 교체 알고리즘

프로세스가 요구한 페이지가 현재 메모리에 없는 경우, 페이지 부재(page fault)가 발생-> 스왑 영역에서 페이지를 메모리로 가져온다. 이 때, 메모리가 꽉 찼다면 메모리에 있는 페이지를 스왑 영역으로 보내야 한다. 페이지 교체 알고리즘은 메모리가 꽉 찼을 때 어떤 페이지를 스왑 영역으로 내보낼지 결정하는 알고리즘이다.메모리에서 앞으로 사용할 가능성이 적은 페이지를 대상 페이지(victim page)로 선정 -> 페이지 부재를 줄이고, 시스템의 성능을 향상 성능 평가 기준페이지 부재 횟수, 페이지 성공 횟수를 기준으로 비교하려고 한다.페이지 교체 알고리즘은 유지 비용 역시 고려해야 한다.페이지 부재의 횟수를 알 수 있는 방법: 페이지 참조열(page reference string)cpu가 참조하는 ..

cs 2024.07.27

인터럽트 interrupt

인터럽트의 정의프로세스 실행 도중 예기치 않은 상황이 발생할 때, 해당 상황을 처리한 후 실행중인 작업으로 복귀하는 것CPU의 정상적인 프로그램 실행을 방해한 것 주로 입출력 장치의 signal, data가 발생할 때까지 원래의 작업을 수행하다가 해당 기능을 처리하는 것. (외부 인터럽트) 종류외부 인터럽트, 내부 인터럽트 내부 인터럽트소프트웨어가 인터럽트 라인을 세팅하는 것.즉, CPU가 명령어를 수행하고 있다가 자신이 처리할 수 없는 명령이면 자기 자신한테 인터럽트를 건다.하드웨어 고장컴퓨터 고장데이터 전달 과정에서 비트오류전원이 나간 경우실행할 수 없는 명령어기억장치에서 인출한 명령어의 비트 패턴이 정의되지 않은 경우명령어 실행 오류나누기 0을 하는 경우사용 권한 위배사용자가 운영체제만 사용할 수 ..

cs 2024.07.23

네이글 알고리즘

네트워크를 통해 전송해야 하는 패킷 수를 줄임으로써 TCP/IP 네트워크의 효율성을 향상하는 수단.John Nagle이 정의해서 네이글 알고리즘이다.ACK를 받을 때까지 출력 버퍼에 데이터를 저장했다가 한번에 보내는 방식이다.  RFC의 '스몰 패킷 문제'응용프로그램이 종종 1바이트에 불과한 작은 덩어리로 반복적으로 데이터를 내보내는 것. TCP 패킷은 40바이트의 헤더를 가지는데, 1바이트의 정보를 보내기 위해 41바이트의 패킷을 보내는 오버헤드를 초래하게 된다.이러한 비효율성은 수많은 패킷들이 동시에 전송되어, 잠재적으로 Congestion Collapse(정체 붕괴)로 이어질 수 있다. 네이글 알고리즘의 수도 코드if there is new data to send then // 상대방이 받을 수 있..

cs 2024.07.21

이더넷 프레임과 구조

이더넷 프레임(Ethernet Frame)의 개념이더넷 프레임은 OSI 2계층인 데이터 링크 계층에서 사용되는 전송 메커니즘이다.프레임은 데이터를 담는 컨테이너. IEEE 802.3 (표준 프레임)DIX 2.0 (Ethernet II)실제로는 Ethernet II 프레임 포멧을 사용한다.Permeable송신자와 수신자의 동기화를 위해 사용된다.56비트(7개의 비트열) 동안 `1`,`0`을 반복함  ex. 10101010 SFD(Start of Frame Delimiter)802.3 프레임에만 존재. Permeable의 끝을 표기하는 8비트 구성.이더넷 패킷의 첫 번째 필드이자, 이더넷 프레임의 시작을 알려준다. Permeable 비트 패턴과 실제 프레임의 시작 신호 전달을 위해 디자인되었다.마지막 두 비..

cs 2024.07.21

브라우저 렌더링과정

브라우저 렌더링은 HTML, CSS, JavaScript 등의 웹 페이지 자원을 브라우저가 화면에 그리는 과정을 말한다.브라우저가 사용자가 요청한 주소를 방문, HTML 파일을 다운로드브라우저의 렌더링 엔진은 HTML 문서를 파싱하여 DOM 노드로 구성된 트리(DOM)를 생성한다.css 파일 만날 시 css파일도 다운로드HTML 태그를 노드로 변환하고, 노드 간의 계층 관계를 형성DOM(Document Object Model)웹페이지에 대한 인터페이스. 브라우저가 웹페이지의 콘텐츠와 구조를 어떻게 보여줄지에 대한 정보브라우저의 렌더링 엔진이 CSS 파일을 파싱하여 CSS 노드로 구성된 트리(CSSOM) 생성CSS 속성을 노드로 변환하고, 노드 간 계층 관계를 형성DOM트리와 CSSOM을 결합하여 렌더 트..

cs 2024.07.18

유선LAN

유선LAN은 양쪽 장치가 동시에 송수신할 수 있는 전이중화 방식을 사용한다. 전이중화 통신전이중화(FULL DUPLEX) 통신은 양쪽 장치가 동시에 송수신 할 수 있는 방식을 말한다.송신로와 수신로가 나뉘어져 있으며, IEEE802.3 프로토콜을 기반으로 이더넷 프레임 구조 등을 결정한다.유선LAN은 동축케이블, 광케이블 등으로 구성된다. IEEE802.3이란? 이더넷프레임은 어떤 구조를 기반으로 할 것인지, 케이블의 최대 전송량, 어떤 케이블만 가능하도록 할 것인지 등을 정한 규칙을 말한다. 전이중화 장치양쪽장치가 동시에 송수신할 수 있는 방식, 송신로와 수신로를 나눠서 데이터를 주고 받을 수 있다.CSMA/CDCSMA/CD(CARRIER SENSE MULTIPLE ACCESS WITH COLLISIO..

cs 2024.07.18

로그인

인증과 인가 인증: 유저가 누구인지 확인하는 절차인가: 유저의 요청에 대한 권한을 확인하고, 허가함 세션기반인증방식session과 cookie가 사용되며, 아래와 같이 진행된다. 1. 유저가 로그인을 하면 서버 메모리 상에 세션이 저장됨 (세션 구분 위해 세션id를 기준으로 정보 저장)2. 클라이언트의 브라우저에 쿠키로 세션id가 저장됨3. 브라우저는 해당 사이트에 대한 모든 request에 세션id를 쿠키에 담아 전송4. 서버는 클라이언트가 전송한 세션id와 서버 메모리를 관리하는 세션 id 비교5. 일치 시 인가 수행 사용자가 로그인하면 서버는 사용자의 인증 정보를 기반으로 세션을 생성 및 관리. 사용자가 로그아웃하거나 세션이 만료되면 세션은 삭제됨서버에 저장되는 세션 정보로 인해 서버의 자원이 사용..

cs 2024.07.15

웹브라우저와 캐시

로컬스토리지웹 브라우저에 데이터를 저장하고 관리할 수 있는 웹 스토리지 객체.브라우저 내에 키-값 쌍을 저장할 수 있게 함 key-value 쌍으로 데이터 저장키-값 쌍으로 데이터를 저장키, 값 모두 문자열이어야 함 -> 어떤 타입의 데이터를 넣더라도 모두 문자열로 변환됨영구적인 데이터 저장 및 용량브라우저를 종료해도 계속 남아있다.로컬 스토리지는 보통 5~10mb의 용량 제한으로, 비교적 넉넉하다 오리진별로 생성됨다른 오리진의 로컬 스토리지에는 접근 불가서로 다른 브라우저 탭이어도, 동일한 오리진이라면 동일한 로컬 스토리지 사용 오리진프로토콜+도메인+포트캐싱웹 캐시 또는 HTTP 캐시는 서버 부하를 방지하기 위해 웹 문서, 이미지 등의 자원을 임시 사용자 웹 브라우저에 저장하는 기술로 HTTP 통신시 ..

cs 2024.07.15