프로세스 메모리 구조, 프로세스/스레드 차이
·
Computer Science/Operating System
프로세스 메모리 구조프로세스 : 실행중인 프로그램의 작업 단위 Stack 영역지역변수, 매개변수, 함수가 저장되는 영역. 컴파일시 크기가 결정됨. 동적 할당 : 함수 호출 시 프레임을 할당하고, 함수 호출이 끝나면 해당 프레임을 해제하는 방식 LIFO(Last In, First Out) 방식으로 동작. 스택 오버플로우가 발생하지 않도록 주의! Heap 영역런타임에 할당된 객체나 배열 등 동적으로 할당된 메모리가 저장되는 영역. 동적 할당 : malloc, calloc, realloc 등의 함수로 메모리 할당이 이루어지며, free 함수로 메모리 해제 메모리 누수가 발생하지 않도록 주의! Data 영역BSS(Block Started By Symbol) 영역과 Data 영역으로 나뉘어져 있다.BSS(Bloc..
프로그램 컴파일 과정 - C, C++/Java ( Interpreter / JIT )
·
Computer Science/Operating System
보편적인 프로그램 컴파일 과정프로그램이란컴퓨터가 특정 작업이나 연산을 수행하도록 지시하는 명령어들의 집합.프로그램? 컴퓨터가 특정 작업이나 연산을 수행하도록 지시하는 명령어들의 집합컴파일? 고급 프로그래밍 언어로 작성된 언어를 컴퓨터가 이해할 수 있게 기계어(or 바이너리코드)로 변환하는 것 즉, 프로그램은 컴파일 된 파일이다.프로그램의 컴파일 과정은 다음과 같다. Soruce File프로그래머가 작성한 원본 코드 파일( .c ,  .cpp   등) Proprocessor전처리기. 소스코드의 주석 제거, 매크로 치환, 파일 병합과 조건부 컴파일 처리. (전처리된 파일을 출력. 일반적으로  .i  확장자) Compiler전처리된 소스코드를 어셈블리 코드로 변환. 이 단계에서 문접 검사와 최적화가 이루어남...
페이지 교체 알고리즘 - FIFO, LRU, LFU, MFU, NUR, OPT(오프라인 알고리즘)
·
Computer Science/Operating System
스와핑이 일어날 때 페이지 교체 알고리즘에 의해 페이지가 교체되게 된다. FIFO (First In First Out) 방법 : 메모리에 가장 먼저 올라온 페이지를 먼저 내보냄.특징구현이 간단하고 직관적성능이 좋지 않을 수 있음. Belady의 역설(FIFO anomaly)이 발생할 수 있음.즉, 페이지 프레임 수가 늘어날 수록 페이지 부재가 증가할 수 있음  LRU (Least Recently Used)방법 : 가장 오랫동안 사용하지 않은 페이지를 교체특징"가장 오랫동안 사용하지 않았다면 앞으로도 사용할 확률이 적을 것이다"라고 가정.자주 사용되는 페이지를 유지하므로 성능이 FIFO보다 상대적으로 좋음.프로세스가 주기억 장치에 접근할 때 참조된 페이지 시간을 기록해야 한함.-> 막대한 오버헤드가 발생할..
가상메모리(2) - 페이지폴트와 스와핑, 스레싱
·
Computer Science/Operating System
페이지 테이블 엔트리(PTE, Page Table Entry)페이지 테이블의 각각 행동들을 페이지 테이블 엔트리라고 한다.유효비트(valid bit) : 현재 해당 페이지에 접근 가능한지 여부.보호비트(protection bit) : 페이지에 접근할 권한을 제한하는 비트(rwx순으로 2bit으로).참조비트(reference bit) : CPU가 해당 페이지에 접근한 적이 있는지 여부.수정비트(modified bit) : 해당 페이지에 데이터가 수정된 적이 있는지 여부. 스왑 아웃 될 때 보조기억 장치에 기록하기 위해 사용.  페이지폴트 (Page fault)와 스와핑스왑 영역(Swap Space)? 프로세스의 가상 메모리 공간 전체를 위해 예약된 디스크 공간스와핑? 메모리의 당장 사용하지 않는 영역을 하..
가상메모리(1) - 페이지테이블, TLB
·
Computer Science/Operating System
가상 메모리(Virtual Memory)란?가상메모리는 OS에서 사용되는 메모리 관리 기법의 하나로 컴퓨터가 실제로 이용가능한 메모리 자원(실제 주소, physical address)을 추상화 하여 이를 사용하는 사용자들에게 매우 큰 메모리로 보이게 만드는 것이다.  ☑️ 가상 메모리의 장점 1. 주기억장치의 효율적인 관리(스와핑)하드디스크를 주기억장치에 대한 캐시로 설정. 쓰지않는 영역은 하드디스크로 옮긴 뒤 필요할 때만 램에 데이터를 불러와 올리고 사용하지 않으면 하드디스크로 내림으로써 램을 효과적으로 관리.2. 메모리 관리의 단순화각 프로세스마다 가상 메모리의 통일 된 주소 공간을 배정할 수 있으므로 메모리 관리가 단순해짐.3. 메모리 용량 및 안정성 보장가상메모리 공간은 거의 무한하다고 생각해도 ..
시스템 콜(System Call), 사용자 모드(User mode), 커널 모드(Kernel mode), modebit
·
Computer Science/Operating System
시스템 콜(System Call) 운영체제는 사용자 모드(User mode)와 커널 모드(Kernel Mode)로 나뉘어 동작한다. 이를 이중 동작 모드(Dual Mode Operation)라고 한다. 사용자 모드는 하드웨어에 직접적으로 접근할 수 없고, 커널 모드는 모든 시스템 메모리와 CPU Instruction 뿐만 아니라 하드웨어에도 직접 접근이 가능하다.이렇게 이중 동작 모드로 사용자가 하드웨어와 직접적으로 상호작용 하는 것을 막아 시스템을 보호한다. 대신, 사용자는 시스템 콜(System Call)을 통해 커널모드로 접근할 수 있다. ※ 시스템콜 :운영체제의 커널이 제공하는 서비스에 대해, 응용 프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스[유저] --> [시스템콜] --> [커널 함..
HTTP vs HTTPS, SSL/TLS
·
Computer Science/Network
HTTP(Hypertext Transfer Protocol)※ 기본 포트 : 80인터넷 상에서 클라이언트와 서버가 자원을 주고 받을 때 쓰는 통신 규약.다음과 같은 단점이 있다. 텍스트 기반 프로토콜: HTTP는 텍스트 명령을 사용하여 요청과 응답을 주고 받음.- 기본 HTTP는 데이터가 평문으로 전송되므로, 중간에 패킷을 가로채기 쉬움 무상태 프로토콜: 각 요청과 응답이 독립적이며, 서버는 이전 요청에 대한 정보를 유지하지 않음.- 웹 애플리케이션이 각 요청에 대해 별도로 인증 및 상태 정보를 전송해야 함을 의미- 헤더 오버헤드 : 쿠키, 사용자 에이전트, 각종 커스텀 헤더 등이 요청마다 반복적으로 전송 -> 대역폭과 리소스 소모 증가   HTTP(Hypertext Transfer Proto..
HTTP/1.0, HTTP/1.1, HTTP/2.0, HTTP/3.0(QUIC)
·
Computer Science/Network
HTTP/1.0특징 :수명이 짧은 연결요청 당 TCP handshake가 발생됨. 한 연결 당 하나의 요청 처리.문제점 :RTT(Round Trip Time)가 늘어나는 문제점.HTTP 1.0 환경에서는 하나의 IP에 여러 개의 도메인을 운영할 수 없음.RTT 감소를 위해 이미지 스프라이트(image sprite), 코드 압축, base64인코딩 등 시행   HTTP/1.1특징 :한번 TCP 연결을 해놓고 계속 데이터를 주고 받음. (keep-alive default)서버가 여러 호스트를 가질 수 있다는 전제로 호스트 헤더를 추가함.다운로드 받다가 연결 끊기면 다시 다운로드 받을 수 있도록 함. (대역폭 최적화에 대한 헤더를 추가)문제점 :HOL(Head Of Line-Blocking) : 네트워크에서 ..
암호화 - 단방향 vs 양방향, 대칭키 vs 비대칭키(개인키/공개키), 암호화 알고리즘
·
Computer Science/Network
암호화(Encryption)란?암호기술은 중요한 정보를 읽기 어려운 값으로 변환하여 제 3자가 볼 수 없도록 하는 기술이다. 정보 보안의 핵심 원칙에는 기밀성, 무결성, 인증이 있다.기밀성(Confidentiality) : 허가받은 자만 정보에 접근할 수 있다.무결성(Integrity) : 허가받은 자만 변경해야한다.즉, 무결성은 제 3자에 의한 정보의 변경이 있는지 없는지를 확인하는 기능.인증(Authentication) : 사용자나 객체의 디지털 정체성을 식별한다.암호화란 위의 세가지 원칙중 "기밀성"을 중심으로 하는 기술이다. (그렇다고 다른 원칙들과 무관한 것은 아님)   단방향(One-Way Encryption) vs 양방향(Two-Way Encryption)평문을 암호문으로 (=암호화), 암호..