CS

CS/네트워크

[네트워크] 2. 물리 계층과 데이터 링크 계층

본 글은 '이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접' 책을 읽고 정리한 글입니다. 네트워크 통신 모델에서 가장 하위 계층인 물리 계층과 데이터 링크 계층을 간단하게 정리하자면, 물리 계층: 통신 매체를 통해 비트 신호를 운반하는 계층 데이터 링크 계층: 같은 LAN에 속한 호스트끼리 정보를 주고받기 위한 계층이다. LAN 내의 호스트들이 올바르게 정보를 주고받을 수 있게 해주는 다양한 기술 중 하나인 이더넷에 대해 보자. ✔️ 이더넷이더넷(Ethernet)은 LAN에서 가장 널리 사용되는 통신 기술로, 여러 장치(컴퓨터, 공유기 등)를 하나의 네트워크로 연결하여 데이터를 주고받을 수 있게 한다. 이더넷은 통신 매체를 통해 신호를 송수신하는 방법, 데이터 링크 계층에서 주고받는 ..

CS/네트워크

[네트워크] 1. 네트워크 기본

본 글은 '이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접' 책을 읽고 정리한 글입니다. 네트워크란?네트워크(Network)는 Net + Work의 합성어로, 그물처럼 서로 긴밀하게 연결되어 있는 것을 의미한다. IT에서 사용되는 컴퓨터 네트워크는 두 대 이상의 컴퓨터가 서로 연결되어 통신할 수 있는 것을 말한다. ✔️ 네트워크의 기본 구조 네트워크는 노드와 간선으로 이루어진 그래프의 형태이다. 네트워크 기기가 노드, 네트워크 기기 간 정보를 주고받는 통신 매체가 간선이다. 위 그림과 같이 네트워크 상에서 노드와 노드 사이의 연결 구조를 네트워크 토폴로지라고 하며, 아래 다섯 가지 유형이 있다. 네트워크를 통해 주고받는 정보를 최초로 송신하고 최종으로 수신하는 노드를 호스트라고 하..

CS/운영체제

[운영체제] 5. 가상 메모리

본 글은 '이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접' 책을 읽고 정리한 글입니다. 논리 메모리와 물리 메모리 CPU가 프로세스를 처리할 때 보는 주소 값과 실제 메모리의 주소 값은 다르다. 프로세스가 보는 메모리 영역을 논리 메모리 영역이라 하고, 실제로 사용되는 메모리 영역을 물리 메모리 영역이라고 한다. 그리고 CPU가 프로세스를 실행할 때 보는 주소 값을 논리 주소, 메모리의 하드웨어 상 실제 주소를 물리 주소라고 한다. 논리 주소는 프로세스마다 0번지부터 시작하는 주소 체계이다. 따라서 물리 주소의 번지 수는 중복될 수 없지만, 논리 주소의 번지 수는 중복으로 존재할 수 있다. 이처럼 CPU가 프로세스를 실행할 때 사용하는 주소 값과 실제 하드웨어 상의 주소 값이 다르므로..

CS/운영체제

[운영체제] 4. CPU 스케줄링

본 글은 '이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접' 책을 읽고 정리한 글입니다. 한정적인 CPU 자원 내에서 모든 프로세스를 공평하게 실행하는 것은 OS의 주요 목적이다. 스케줄링의 목적 멀티 프로세스 환경에서 모든 프로세스를 공평하게 실행하기 위해 스케줄링 기법을 활용한다. schedule이라는 의미에 맞게, 어떠한 작업의 순서를 계획한다고 생각하면 된다. 스케줄링은 세부적으로 다음 5가지의 목적이 있다. 공평성 : 특정 프로세스가 실행되지 않는 경우가 없어야 한다. 효율성 : 자원을 효율적으로 사용해 자원이 사용되지 않는 시간이 없어야 한다. 안정성 : 높은 우선순위의 프로세스를 먼저 처리한다. 반응 시간 보장 : 프로세스가 오랜 시간 응답이 없으면 사용자는 시스템이 멈춘 ..

CS/운영체제

[운영체제] 3. 동기화와 교착 상태

본 글은 '이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접' 책을 읽고 정리한 글입니다. ✔️ 임계 영역 프로세스 혹은 스레드가 공유하는 자원을 공유 자원이라고 한다. 만약 두 프로세스 A와 B가 각각 공유 메모리를 쓰고 읽는 작업을 한다고 할 때, A와 B가 실행되는 순서에 따라 다른 결과를 초래할 수 있다. B가 먼저 실행이 된다면 아직 쓰이지 않은 메모리를 읽으려 하기 때문에 문제가 발생할 수 있다. 이와 같이 접근 순서에 따라 다른 결과를 나타낼 수 있는 코드 구역을 임계 영역(critical section)이라고 한다. 이번에는 동시에 파일을 수정하는 스레드를 생각해보자. 초기 파일에 저장된 값이 'first'라 가정하고 스레드 A는 'thread A'를 파일에 추가하는 작..

CS/운영체제

[운영체제] 2. 프로세스와 스레드

본 글은 '이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접' 책을 읽고 정리한 글입니다. 프로세스프로세스는 컴퓨터에서 실행 중인 프로그램을 의미한다. ✔️ 프로세스의 메모리 구조 컴퓨터의 메모리는 RAM, 레지스터와 같이 물리적인 컴퓨터의 구성요소이고, 지금 볼 프로세스의 메모리는 운영체제가 해당 프로세스에 할당한 논리 메모리 구조이다. 프로세스의 메모리 구조는 다음 그림과 같다. 커널 영역에는 프로세스 제어 블록 (PCB)이 저장되고, 사용자 영역에는 코드, 데이터, 힙, 스택 영역으로 나뉘어 저장된다. 코드 영역 코드 영역은 함수, 상수와 같은 기계어가 저장되는 공간으로, 텍스트 영역이라고도 한다.CPU가 읽고 실행할 명령어가 담겨 있기 때문에 읽기 전용 공간이다. 만약 쓰기가 ..

CS/운영체제

[운영체제] 1. 운영체제 기본

본 글은 '이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접' 책을 읽고 정리한 글입니다.   운영체제란?운영체제(OS: Operating System)는 하드웨어 위에 설치되어, 하드웨어 계층과 다른 소프트웨어 계층을 연결하는 소프트웨어 계층이다. 또한, 컴퓨터 자원을 효율적으로 관리하기 위한 시스템으로, 사용자가 컴퓨터를 사용할 수 있는 환경을 제공하는 역할을 한다. 만약 운영체제가 컴퓨터에 탑재되어있지 않다면, 우리가 컴퓨터를 이용해서 사용하는 모든 기본적인 프로그램들을 사용할 수 없을 것이다. `ex. Excel` 대표적인 OS로는 윈도우, 맥OS, 리눅스, 유닉스가 있다.  운영체제의 구조 운영체제는 커널과 인터페이스로 구성되어 있다. 커널 커널은 운영체제의 핵심 요소로, 하드웨어의 ..

CS/자료구조

[자료구조] 힙(Heap)이란?

힙(Heap)이란?힙이란 완전 이진 트리의 일종으로, 여러 개의 값들 중 최댓값이나 최솟값을 빠르게 찾아내도록 만들어진 자료구조이다. 힙은 트리의 루트 노드에 데이터들의 최댓값 또는 최솟값을 저장한다.즉, 부모 노드의 키 값이 자식 노드의 키 값보다 항상 큰(작은) 이진 트리를 말한다. 최대 힙 & 최소 힙 최대 힙 (max heap)- 부모 노드의 키 값이 자식 노드의 키 값보다 크거나 같은 이진 트리 - 루트 노드에 힙의 최댓값 저장최소 힙 (min heap)- 부모 노드의 키 값이 자식 노드의 키 값보다 작거나 같은 이진 트리 - 루트 노드에 힙의 최솟값 저장 힙의 삽입 다음의 과정을 거쳐서 힙에 데이터를 삽입한다. 1. 힙의 가장 마지막에 데이터를 삽입한다. 2. 삽입한 노드의 부모 노..

시로-
'CS' 카테고리의 글 목록