네트워크 계층의 역할 네트워크 간의 연결 구조 네트워크 계층 역할 : 네트워크 간의 통신을 가능하게 하는 것 서로 다른 네트워크에 있는 컴퓨터로 데이터 전송이 가능해짐 데이터 링크 계층 → 같은 네트워크에 있는 컴퓨터로만 데이터 전송 가능 라우터 다른 네트워크로 데이터를 전송하기 위해 필요한 네트워크 장비 거리에 관계없이 데이터를 보낼 수 있음 해당 목적지까지 어떤 경로로 가는 것이 좋은지 알려주는 기능 데이터를 보내려는 곳의 주소(목적지)를 알아야 함 → IP주소를 알아야 함 IP 주소 : 어떤 네트워크의 어떤 컴퓨터인지를 구분할 수 있도록 하는 주소 IP주소가 있으면 다른 네트워크에 있는 목적지를 지정 가능 라우팅 테이블에 경로 정보를 등록하고 관리 라우팅 : 목적지 IP주소까지 어떤 경로로 데이터를..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIJ8Wu%2FbtstwmVqEhJ%2FWGDcWZhAevlFFe8P4qnQV1%2Fimg.png)
문제 이해 단계 https://www.acmicpc.net/problem/17073 17073번: 나무 위의 빗물 첫째 줄에 트리의 노드의 수 N과 1번 노드에 고인 물의 양을 의미하는 정수 W가 주어진다. (2 ≤ N ≤ 500,000, 1 ≤ W ≤ 109) 다음 N-1줄에 걸쳐, 트리에 존재하는 간선의 정보가 U V의 형태로 주어진다 www.acmicpc.net N개의 노드와 고인 물의 양 W가 주어진다. 루트 노드는 항상 1번으로 고정이다. 모든 노드는 루트 노드인 1번 노드의 자식 노드이다. 1번 노드로부터 물이 떨어지는데, 떨어지는 규칙은 다음과 같다. 1. 물을 가지고 있을 경우, 자식 노드가 있다면 자식 노드 중 하나를 골라 물을 1 준다. (자식 노드가 여러 개라면 동일한 확률로 하나를 ..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbUQDzu%2FbtstxoFanKI%2FeC6bWSXV6IaHkjXLavo2bk%2Fimg.png)
데이터 링크 계층의 역할과 이더넷 랜에서 데이터를 주고받으려면 데이터 링크 계층의 기술이 필요 이더넷 이더넷(Ethernet) : 데이터 링크 계층 규칙 중 일반적으로 가장 많이 사용되는 규칙 데이터 링크 계층 규칙 : 네트워크 장비 간에 신호를 주고받는 규칙 이더넷은 랜에서 적용되는 규칙을 뜻함 → 허브와 같은 장비에 연결된 컴퓨터와 데이터를 주고받을 때 사용 특정 컴퓨터에만 데이터를 보내기 위해, 보내려는 데이터에 목적지 정보를 추가 → 목적지 이외의 컴퓨터는 데이터를 받더라도 무시하게 됨 여러 컴퓨터가 동시에 데이터를 전송해도 충돌하지 않는 구조로 되어있음 → 데이터를 보내는 시점을 늦춤(CSMA/CD) CSMA/CD 반송파 감지 다중 접속 및 충돌 탐지의 약어 아래의 규칙들 덕분에 충돌이 일어나지..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtAImZ%2FbtstC1B7jUd%2FNXIFyFWdtRffeut0L0Ilc0%2Fimg.png)
물리 계층의 역할과 랜 카드의 구조 데이터와 전기신호 아날로그 신호 : 물결 모양의 전기 신호 전화 회선, 라디오 방송에 사용되는 신호 디지털 신호 : 막대 모양이랑 비슷 데이터가 전송되는 과정 송신 측에서 전송하는 비트열 데이터는 전기 신호로 변환되어 네트워크를 통해 수신 측에 도착 비트열 데이터 : 0과 1로 이루어져 있는 데이터 수신 측에서는 전기 신호를 비트열 데이터로 복원 전기 신호 변환은 물리 계층(1 계층)에서 일어나는 과정 물리 계층 컴퓨터와 네트워크 장비를 연결하고, 컴퓨터와 네트워크 장비 간에 전송되는 데이터를 전기 신호로 변환하는 계층 데이터가 전기신호로 변환되는 방법(랜카드) 랜 카드를 통해 네트워크에서 데이터를 주고받음 0과 1의 정보가 랜카드로 전송되고, 랜 카드는 0과 1을 전..
프로세스에 대한 연산 대부분 시스템 내의 프로세스들은 병행 실행될 수 있으며, 동적으로 생성되고, 제거되어야 한다. → 운영체제는 프로세스 생성 및 종료를 위한 기법을 제공해야 한다. 프로세스 생성 프로세스는 여러 개의 새로운 프로세스를 새로운 프로세스를 생성할 수 있다. 부모 프로세스 : 프로세스를 생성하는 프로세스 자식 프로세스 : 생성된 새로운 프로세스 자식 프로세스는 또다시 다른 프로세스를 생성할 수 있다. 부모와 자식 프로세스가 이어져 트리를 형성한다. 프로세스 식별자 프로세스 식별자(pid) : 프로세스를 구분하는 데 사용하는 식별자 해당 식별자는 보통 정수 UNIX, Linux 및 Windows와 같은 대부분의 현대 운영체제들이 사용 pid는 시스템의 각 프로세스에 고유한 값을 가지도록 할당..
문제 이해 단계 https://www.acmicpc.net/problem/19539 19539번: 사과나무 첫 번째 줄에 모든 나무가 갊자가 바라는 높이가 되도록 물뿌리개를 통해 만들 수 있으면 “YES”를, 아니면 “NO”를 따옴표를 제외하고 출력한다. www.acmicpc.net 일렬로 1부터 N번까지 나무가 존재하는데, 나무의 초기 높이는 모두 0이다. 그리고 나무를 1 성장시킬 수 있는 물뿌리개와, 나무를 2 성장시킬 수 있는 물뿌리개 2개가 존재한다. 두 물뿌리개는 무조건 동시에 뿌려야 하고, 한 나무에 몰아서 줘서 3을 성장시킬 수 있다. N개의 정수가 주어졌을 때, 해당 물뿌리개들로 해당 높이 배치를 만들 수 있는지 판단하는 문제 문제 접근 단계 문제의 조건부터 살펴보자. 나무의 개수는 최대..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIBVgk%2FbtssT99BHWI%2FzIPVtzX3d4ikPQcolLQKP0%2Fimg.png)
프로세스 스케줄링 다중 프로그래밍 목적 CPU 이용을 최대화하기 위해 항상 어떤 프로세스를 실행하는 것 시분할의 목적 프로세스들 사이에서 CPU 코어를 계속 교체하는 것 ← 각 프로그램이 실행되는 동안 사용자가 상호작용 할 수 있도록 하기 위해 시분할과 다중 프로그래밍의 목적을 달성하기 위해 프로세스 스케줄러가 존재 프로세스 스케줄러 : 코어에서 실행 가능한 프로세스 중 하나를 선택 각 CPU 코어는 한 번에 하나의 프로세스만 실행 가능 → 코어보다 많은 프로세스가 있는 경우, 초과 프로세스는 코어가 사용 가능해지고, 다시 스케줄 될 때까지 대기 현재 메모리에 있는 프로세스 수를 다중 프로그래밍 정도라고 함 프로세스는 대부분 2가지로 나눌 수 있음 I/O 바운드 프로세스 : 계산에 소비하는 것보다 I/O..
프로세스 개념 프로세스(process) = 작업(job) : 모든 CPU 활동들 비공식적으로, 프로세스란 실행 중인 프로그램 프로세스의 현재 활동 상태는 프로그램 카운터 값 + 프로세서 레지스터의 내용 프로세스의 구조 텍스트 섹션 : 실행 코드 프로그램 실행 시간 동안 크기 고정 데이터 섹션 : 전역 변수 프로그램 실행 시간 동안 크기 고정 힙 섹션 : 프로그램 실행 중 동적으로 할당되는 메모리 프로그램 실행 중 동적으로 변함 메모리가 동적으로 할당됨에 따라 힙이 커짐 반대로 메모리가 시스템에 반환되면 축소됨 스택 섹션 : 함수 호출 시 임시 데이터 저장소(함수 매개변수, 복귀 주소, 지역변수) 프로그램 실행 중 동적으로 변함 함수 호출 → 매개변수, 지역변수, 복귀 주소를 포함하는 활성화 레코드가 스택..