본문 바로가기

CS

[면접을 위한 CS 전공지식 노트] 3.3. 프로세스와 스레드(3) 🔑 공유자원(shared resource) 시스템 안에서 각 프로세스, 스레드가 함께 접근할 수 있는 모니터, 프린터, 메모리, 파일 등의 자원, 변수 경쟁 상태(race condition) 공유자원을 두 개 이상의 프로세스가 동시에 읽거나 쓰는 상황 동시에 접근 시도 시 접근 타이밍이나 순서 등이 결과값에 영향을 줄 수 있는 상태 🔑 임계영역(critical section) 둘 이상의 프로세스, 스레드가 공유 자원에 접근할 때 순서 등의 이유로 결과가 달라지는 코드 영역 해결 할 수 있는 조건 상호 배제 : 한 프로세스가 임계 영역에 들어갔을 때 다른 프로세스는 들어갈 수 없음 한정 대기 : 특정 프로세스가 영원히 임계영역에 들어가지 못하면 안 됨 융통성 : 한 프로세스가 다른 프로세스의 일을 방해해선.. 더보기
[면접을 위한 CS 전공지식 노트] 3.3. 프로세스와 스레드(2) 🔑 PCB(Process Control Block) 운영체제에서 프로세스에 대한 메타 데이터를 저장한 데이터 프로세스가 생성되면 운영체제는 해당 PCB 생성 프로세스의 메타 데이터가 PCB에 저장되어 관리됨 메타 데이터 데이터에 관한 구조화된 데이터를 설명하는 작은 데이터, 대량의 정보 중 찾고 있는 정보를 효율적으로 찾아내 이용하기 위해 일정 규칙에 따라 콘텐츠에 부여되는 데이터프로세스의 중요 정보를 포함하고 있기 때문에 일반 사용자가 접근하지 못하도록 커널 스택의 가장 앞부분에서 관리됨 프로세스의 중요 정보를 포함하고 있기 때문에 일반 사용자가 접근하지 못하도록 커널 스택의 가장 앞부분에서 관리됨 🔑 PCB의 구조 프로세스 스케줄링 상태 : 준비, 일시 중단 등 프로세스가 CPU에 대한 소유권을 얻은.. 더보기
[면접을 위한 CS 전공지식 노트] 3.3. 프로세스와 스레드(1) 🔑 프로세스와 스레드 프로세스(process) CPU 스케줄링 대상인 작업(task)와 거의 같은 의미로 사용 컴퓨터에서 실행되고 있는 프로그램 프로그램이 메모리에 올라가 인스턴스화 된 것 스레드(thread) 프로세스 내 작업흐름 프로그램이 메모리에 올라가면 프로세사기 되는 인스턴스화를 거치고 운영체제의 CPU스케줄러에 따라 CPU가 프로세스 실행됨 🔑 프로세스와 컴파일 과정 프로그램 컴파일 과정 전처리 : 소스코드 주석 제거, 헤더 파일 병합, 매크로 치환 컴파일러 : 오류 처리, 코드 최적화 작업, 어셈블리어로 변환 어셈블러 : 어셈블리어를 목적 코드로 변환, 확장자는 운영체제마다 다름 링커 프로그램 내에 있는 라이브러리 함수나 다른 파일들과 목적 코드를 결합해 실행 파일을 만듦 정적 라이브러리 프.. 더보기
[면접을 위한 CS 전공지식 노트] 3.2. 메모리 - 메모리 관리 🔑 가상 메모리 메모리 관리 기법 중 하나로 컴퓨터가 실제로 이용 가능한 메모리 자원을 추상화 해 이를 사용하는 사용자들에게 매우 큰 메모리로 보이게 만드는 것 가상주소와 실제 주소가 매핑되어있고 프로세스의 주소 정보가 들어있는 페이지 테이블로 관리 속도 향상을 위해서 TLB를 사용함 메모리와 CPU 사이에 있는 주소 변환을 위한 캐시 페이지 테이블에 있는 리스트를 보관하며 CPU가 페이지 테이블까지 가지 않도록 속도를 향상시킬 수 있는 캐시 계층 스와핑(swaping) 가상 메모리에는 존재하지만 실제 메모리인 RAM에는 현재 없는 데이터나 코드에 접근 시 페이지 폴트가 발생함 메모리에서 당장 사용하지 않는 영역을 하드 디스크에 옮기고 하드 디스크의 일부분을 마치 메모리처럼 불러와 쓰는 것을 스와핑이라고.. 더보기
[면접을 위한 CS 전공지식 노트] 3.2. 메모리(1) 🔑메모리 계층 레지스터 : CPU안에 있는 작은 메모리, 휘발성, 속도 가장 빠름, 기억 용량 가장 적음 캐시 : 휘발성, 속도 빠름, 기억 용량 적음 메모리, 주기억장치 : 휘발성, 속도 보통, 기억 용량 보통 저장 장치, 보조기억장치 : 비휘발성, 속도 느림, 기억 용량 많음 🔑램(RAM) 하드 디스크로부터 일정량의 데이터를 복사해 임시 저장하고 필요시마다 CPU에 빠르게 전달하는 역할 계층 위로 올라갈수록 비싸지지만 용량은 작아지고 속도는 빨라짐 경제성, 캐시 때문에 존재함 🔑캐시(cache) 데이터를 미리 복사해놓는 임시 저장소 빠른 장치와 느린 장치에서 속도 차이에 따른 병목 현상을 줄이기 위한 메모리 = 속도 차이를 해결하기 위해 계층 간에 있는 계층 데이터에 접근하는 시간이 오래 걸리는 경우.. 더보기
[면접을 위한 CS 전공지식 노트] 3.1. 운영체제와 컴퓨터 🔑운영체제(OS, Operating System) 사용자가 컴퓨터를 쉽게 다루게 해주는 인터페이스 한정된 메모리나 시스템 자원을 효율적으로 분배함 🔑운영체제의 역할 CPU 스케줄링과 프로세스 관리 CPU소유권을 어떤 프로세스에 할당할 지, 프로세스의 생성, 삭제, 자원 할당 및 반환 관리 메모리 관리 한정된 메모리를 어떤 프로세스에 얼만큼 할당해야 하는지 관리 디스크 파일 관리 디스크 파일을 어떤 방법으로 보관할 지 관리 I/O 디바이스 관리 마우스, 키보드 등 입출력 장치와 컴퓨터 간에 데이터를 주고 받는 것을 관리 🔑운영체제의 구조 유저 프로그램 GUI 시스템콜 커널 드라이버 하드웨어 GUI 사용자가 전자장치와 상호작용할 수 있도록 하는 사용자 인터페이스의 한 형태 아이콘을 클릭하는 단순한 동작으로 .. 더보기
[면접을 위한 CS 전공지식 노트] 2.5.HTTP 🔑HTTP 애플리케이션 계층으로 웹 서비스 통신에 사용함 🔑HTTP/1.0 기본적으로 하나의 요청을 처리하도록 설계되어 RTT 증가를 불러옴 RTT 패킷이 목적지에 도달하고 나서 다시 출발지로 돌아오기까지 걸리는 시간으로 패킷 왕복 시간임 서버로부터 파일을 가져올 때마다 TCP의 3-way ahndshake를 계속 열어야 해 RTT가 증가하게 됨 → 서버 부담이 증가하고 사용자 응답시간이 길어지게 됨 RTT 증가 해결방법 이미지 스플리팅 많은 이미지를 다운로드받게 되면 과부하가 걸림 많은 이미지가 합쳐져 있는 하나의 이미지를 다운로드받고 이를 기반으로 back ground iamge의 position을 이용해 이미지를 표기함 코드 압축 : 코드를 압축해 개행문자, 빈칸을 없애 코드의 크기를 최소화함 이미.. 더보기
[면접을 위한 CS 전공지식 노트] 2.4. IP주소 🔑IP주소 컴퓨터간 통신은 IP주소에서 ARP를 통해 MAC주소를 찾아 MAC 주소를 기반으로 통신함 🔑ARP(Address Resolution Protocol) IP주소로부터 MAC주소를 구하는 IP와 MAC 주소의 다리 역할을 하는 프로토콜 ARP를 통해 가상 주소인 IP 주소를 실제 주소인 MAC 주소로 변환함 논리적 주소 → ARP → 물리적 주소 RARP를 통해 실제 주소인 MAC주소를 가상 주소인 IP주소로 변환힘 물리적 주소 → RARP → 논리적 주소 🔑홉바이홉 통신 IP주소를 통해 통신하는 과정 수많은 서브 네트워크 안에 있는 라우터의 라우팅 테이블 IP를 기반으로 패킷을 전달하고 또 전달해가며 라우팅을 수행하여 최종 목적지까지 패킷을 전달함 통신 장치에 있는 라우팅 테이블의 IP를 통해.. 더보기

728x90