본문 바로가기

분류 전체보기191

프로세스와 쓰레드 프로세스는 컴퓨터에서 실행되고 있는 프로그램을 말하며 CPU 스케줄링의 대상이 되는 작업이라는 용어와 같은 의미로 쓰인다. 쓰레드는 프로세스 내 작업의 흐름을 지칭한다. 프로세스와 컴파일 과정 프로세스는 프로그램으로부터 인스턴스화된 것을 말한다. 예를 들어 프로그램은 구글 크롬 프로그램과 같은 실행 파일이며, 이를 두 번 클릭하면 구글 크롬 프로세스가 시작되는 것이다. 프로그램은 컴파일러가 컴파일 과정을 거쳐 컴퓨터가 이해할 수 있는 기계어로 번역되어 실행될 수 있는 파일이 되는 것을 의미한다. 다음은 C언어 기반의 프로그램 컴파일 과정이다. 여타 인터프리터 언어와는 다르다. 전처리 - 소스 코드의 주석을 제거하고 #include 등 헤더 파일을 병합하여 매크로를 치환한다. 컴파일러 - 오류 처리, 코드.. 2023. 10. 23.
메모리 메모리 계층 레지스터 : CPU 안에 있는 작은 메모리, 휘발성, 속도 가장 빠름, 기억 용량이 가장 적음 캐시(L1, L2 캐시) : L1, L2 캐시를 지칭, 휘발성, 속도 빠름, 기억 용량이 적음 메모리(RAM)/ 주기억장치 : RAM을 가리킴, 휘발성, 속도 보통, 기억 용량이 보통 저장장치(HDD, SDD)/ 보조기억장치 : HDD, SDD를 가리킴, 휘발성, 속도 낮음, 기억 용량이 많음 이러한 계층이 있는 이유는 계층 위로 갈수록 속도는 빨라지지만 용량은 작아지고 가격이 비싸지기 때문이다. 즉, 경제성 때문이다. 캐시 데이터를 미리 복사해 놓는 임시 저장소이자 빠른 장치와 느린 장치에서 속도 차이에 따른 병목 현상을 줄이기 위한 메모리를 말한다. 데이터를 접근하는 시간이 오래 걸리는 경우를 .. 2023. 10. 20.
운영체제 운영체제(OS)는 사용자가 컴퓨터를 쉽게 다루게 해주는 인터페이스이다. 한정된 메모리나 시스템 자원을 효율적으로 분배하는 역할을 한다. 참고로 운영체제와 유사하나 소프트웨어를 추가로 설치할 수 없는 것을 펌웨어라고 한다. 운영체제의 역할과 구조 운영체제의 역할 CPU 스케줄링과 프로세스 관리 : CPU 소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제, 자원 할당 및 반환을 관리한다. 메모리 관리 : 한정된 메모리를 어떤 프로세스에 얼만큼 할당해야 하는지 관리한다. 디스크 파일 관리 : 디스크 파일을 어떠한 방법으로 보관할지 관리한다. I/O 디바이스 관리 : I/O 디바우스들은 마우스, 키보드와 컴퓨터 간에 데이터를 주고받는 것을 관리한다. 운영체제의 구조 유저 프로그램 - GUI - 시스템콜.. 2023. 10. 19.
HTTP HTTP는 애플리케이션 계층으로 웹 서비스 통신에 사용된다. HTTP/1.0 기본적으로 한 연결당 하나의 요청을 처리하도록 설계되었다. 이로 인해 서버로부터 파일을 가져올 때마다 TCP의 3-way handshake를 계속해서 열어야 하기 때문에 RTT가 증가하는 단점이 있다. RTT - 패킷이 목적지에 도달하고 나서 다시 출발지로 돌아오기까지 걸리는 시간이며 패킷 왕복 시간 이로인해 서버에 부담이 많이 가고 사용자 응답 시간이 길어졌다. 이를 해결하기 위해 이미지 스플리팅, 코드 압축, 이미지 Base64 인코딩을 사용하곤 했다. 이미지 스플리팅 - 많은 이미지를 다운받게 되면 과부하가 걸리기 때문에 많은 이미지가 합쳐 있는 하나의 이미지를 다운받고, 이를 기반으로 background-image 의 p.. 2023. 10. 19.