분류 전체보기 37

[CS] {네트워크} 물리 계층 & 데이터링크 계층

1. 이더넷- 현대 LAN, 유선 LAN 환경에서 가장 대중적으로 사용되는 기술 1) 물리 계층 관련 이더넷 기술(통신 매체)- 국제 표준으로써의 이더넷- 이더넷은 IEEE 802.3이라는 이름으로 국제 표준이 됨- IEEE 802.3 == 이더넷 관련 다양한 표준의 모음 == 이더넷 관련 표준을 만드는 작업 그룹(전문가 단체)- 수많은 이더넷 표준에 따라 지원되는 네트워크 장비, 통신 매체의 종류, 전송 속도 등이 달라짐 >> 흔히 이더넷 표준에 따라 다음과 같이 표기(1) 전송 속도- 숫자만 표기되어 있으면 Mbps 속도- 숫자 뒤에 G가 붙는 경우 Gbps 속도 (2) 추가 특성- 통신 매체의 특성을 명시- 다양한 특성이 명시될 수 있음(전송 가능한 최대거리 / 물리 계층 인코딩 방식 / 레인(비트..

CS 공부 2025.05.15

[CS] {네트워크} 네트워크란?

1. 컴퓨터 네트워크 거시적으로 살펴보기1) 네트워크 기본 구조네트워크 구조 = 그래프(1) 호스트(가장자리에 위치한 노드)- 호스트 역할에 따른 구분a. 클라이언트b. 서버 (2) 네트워크 장비(중간에 위치한 노드)- 호스트 간 주고받을 정보가 거치는 중간 노드- 호스트 간 주고받는 정보가 수신지까지 안정적이고 안전하게 전송 (3) 통신매체(노드 간 연결하는 링크)a. 유선 매체b. 무선 매체 (4) 메시지(노드 간 주고받는 정보)ex. 웹페이지, 파일, 메일 등 2) 네트워크의 분류(1) 범위에 따른 네트워크 분류a. LAN(Local Area Network): 가까운 지역을 연결하는 근거리 통신망 b. WAN(Wide Area Network): 먼 지역을 연결하는 광역 통신망- 인터넷이 WAN으로 ..

CS 공부 2025.05.11

[CS] {운영체제} 파일

1. 파일과 디렉터리- 보조기억장치의 데이터 덩어리 1) 파일- 보조기억장치에 저장된 관련 정보의 집합- 의미 있고 관련 있는 정보를 모은 논리적 단위 2) 디렉터리- 윈도우에서는 폴더(1) 1단계 디렉터리: 1개의 디렉터리 안에 다양한 파일(2) 트리 구조 디렉터리: 여러 계층으로 파일 및 폴더를 관리 ** 경로- 디렉터리를 이용해 파일/디렉터리의 위치, 이름까지 특정 지을 수 있는 정보- 절대경로와 상대경로(1) 절대 경로 : 루트 디렉터리에서 자기 자신까지 이르는 고유한 경로(2) 상대 경로 : 현재 디렉터리에서 자기 자신까지 이르는 경로 ** 많은 운영체제에서는 디렉터리를 그저 '특별한 형태의 파일'로 간주! 3)디렉터리 엔트리- 파일의 내부에는 파일과 관련된 정보들이 있다면- 디렉터리의 내부에는..

CS 공부 2025.05.07

[CS] {운영체제} 메모리 관리 방식

1. 연속 메모리 할당: 프로세스에 연속적인 메모리 공간을 할당 1) 스와핑- 현재 사용되지 않는 프로세스들을 보조기억장치의 일부 영역으로 쫓아내고 빈 공간에 새 프로세스 적재 > 이점- 프로세스들이 요구하는 메모리 공간 크기가 실제 메모리 크기보다 큰 경우에도 프로세스들을 동시에 실행할 수 있음. 2) 메모리 할당- 프로세스는 메모리의 빈 공간에 할당되어야 한다.- 빈 공간이 여러개 있다면?> 최초 적합, 최적 적합, 최악 적합(1) 최초 적합: 운영체제가 메모리 내의 빈 공간을 순서대로 검색하다 적재할 수 있는 공간을 발견하면 그 공간에 프로세스를 배치하는 방식- 검색 최소화, 빠른 할당 (2) 최적 적합: 운영체제가 빈 공간을 모두 검색해본 뒤, 적재 가능한 가장 작은 공간에 할당 (3) 최악 적합..

CS 공부 2025.05.03

[CS] {운영체제} 교착상태(데드락)

1. 교착상태(데드락)란? > 식사하는 철학자 문제 ( 대표적인 교착상태를 나타내는 예시 )모든 철학자가 왼쪽의 포크를 들면 그 누구도 오른쪽 포크가 없어서 식사를 할 수 없다.철학자 : 프로세스, 포크 : 자원, 식사행위 : 실행 > 교착상태를 해결하기 위해서1) 교착상태가 발생했을 때의 상황을 정확히 표현해보기=> 자원할당 그래프- 교착상태 발생 조건 파악 가능- 어떤 프로세스가 어떤 자원을 할당 받아 사용 중인지 확인 가능a. 프로세스는 원으로, 자원의 종류는 사각형으로 표현b. 사용할 수 있는 자원의 개수는 자원 사각형 내에 점으로 표현c. 프로세스가 어떤 자원을 할당 받아 사용중이라면 자원에서 프로세스를 향해 화살표를 표시d. 프로세스가 어떤 자원을 기다리고 있다면 프로세스에서 자원으로 화살표를..

CS 공부 2025.04.25

[CS] {운영체제} 동기화 기법

1. 뮤텍스 락: 상호배제를 위한 동기화 도구(자물쇠 역할), 뮤텍스 락 > 뮤텍스 락의 단순한 형태- 전역 변수 하나, 함수 두 개자물쇠 역할 : 프로세스들이 공유하는 전역 변수 lock임계 구역을 잠그는 역할 : acquire 함수임계 구역의 잠금을 해제하는 역할 : release 함수 1) acquire 함수프로세스가 임계 구역에 진입하기 전에 호출임계 구역이 잠겨 있다면 열릴 때까지 임계 구역을 반복적으로 확인(lock이 false가 될 때까지)임계 구역이 열려 있다면 임계 구역을 잠그기(lock을 true로 바꾸기)2) release 함수임계 구역에서의 작업이 끝나고 호출현재 잠긴 임계 구역을 열기(lock을 false로 바꾸기)3) 바쁜 대기(busy-waiting)- 임계구역이 잠겨있는지를 ..

카테고리 없음 2025.04.23

[CS] {운영체제} 동기화

동시다발적으로 실행되는 프로세스들은 서로 협력하며 영향을 주고받는다.이 과정에서 자원의 일관성을 보장해야 한다. (= 프로세스들의 동기화를 고려해야 한다) Q. 동기화란?: 공동의 목적을 위해 동시에 수행되는 프로세스(ex. 워드 프로세서 프로그램 - 맞춤법 검사 프로세스, 입력 내용을 화면에 출력하는 프로세스...)-> 올바른 수행을 위해 프로세스들은 아무렇게나 실행되지 않고 동기화되어야 한다. 1) 동기화의 의미(1) 실행 순서 제어 : 프로세스를 올바른 순서대로 실행하기> reader writer problemWriter - Book.txt 파일에 값을 저장하는 프로세스Reader - Book.txt 파일에 저장된 값을 읽어들이는 프로세스-> Reader와 Writer 프로세스는 무작정 실행되어선 ..

CS 공부 2025.04.22

[CS] {운영체제} CPU 스케줄링

1. CPU 스케줄링 개요1) CPU 스케줄링이란?: 운영체제가 프로세스들에게 공정하고 합리적으로 CPU 자원을 배분하는 것 2) 프로세스 우선순위- 입출력 작업이 많은 프로세스(=입출력 집중 프로세스)의 우선순위는 CPU작업이 많은 프로세스(=CPU 집중 프로세스)의 우선순위보다 높다(입출력 집중 프로세스는 잠깐 실항하면 당분간 대기상태로 접어들기 때문에) (1) 스케줄링 큐a. 준비큐b. 대기큐 (2) 선점형/비선점형 스케줄링a. 선점형 스케줄링- 위에서 설명한 스케줄링 방법이 보통 선점형 스케줄링장점 : 어느 한 프로세스의 자원 독점을 막고 프로세스들에 골고루 자원을 배분할 수 있다.단점 : 그만큼 문맥 교환 과정에서 오버헤드가 발생할 수 있다. b. 비선점형 스케줄링- 한 프로세스가 작업이 종료..

CS 공부 2025.04.21

[CS] {운영체제} 프로세스와 스레드

1. 프로세스 개요> 프로세스들은 돌아가며 한정된 시간 만큼만 CPU 이용- 타이머 인터럽트가 발생하면 차례 양보. 1) 프로세스 제어블록(= PCB)- 빠르게 번갈아 수행되는 프로세스들을 관리- 이를 위해 사용하는 자료구조가 프로세스 제어블록(PCB)프로세스 관련 정보를 저장하는 자료구조상품에 달린 태그와 같은 정보프로세스 생성 시 커널 영역에 생성, 종료 시 폐기> PCB에 담기는 대표적인 정보프로세스 ID (=PID) : 특정 프로세스를 식별하기 위해 부여하는 고유한 번호레지스터 값 : 프로세스는 자신의 실행 차례가 오면 이전까지 사용한 레지스터 중간 값을 모두 복원 => 실행 재개프로세스 상태 : 입출력 장치 사용 대기 상태, CPU 사용 대기 상태 등등메모리정보 : 프로세스가 어느 주소에 저장되..

CS 공부 2025.04.19

[CS] {운영체제} 운영체제란?

1. 운영체제를 알아야 하는 이유▶ 운영체제란?실행한 프로그램에 필요한 자원을 할당하고 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램운영체제는 커널영역에 적재되는 프로그램응용프로그램을 메모리 내 빈공간에 주소를 할당CPU도 관리입출력장치 관리하드웨어와 응용프로그램간의 연결다리-> 운영체제 덕분에 개발자는 하드웨어를 조작하는 코드를 직접 작성할 필요가 없음! > 운영체제는 프로그램을 만드는 프로그램이다=> 그렇기에 프로그램을 만드는 개발자는 운영체제를 알아야 한다! 2. 운영체제의 큰 그림1) 커널- 운영체제는 현존하는 프로그램 중 규모가 가장 큰 프로그램 중 하나- 이러한 운영체제의 핵심 서비스를 담당하는 부분을 '커널'이라고 함.(이하 운영체제는 커널을 뜻함. 특별 언급은 제외)(= 자동차의 엔진..

CS 공부 2025.04.16