분류 전체보기 269

[운영체제] 교착상태

독학사- 운영체제 편을 공부하고 정리한 내용입니다. 교착상태 deadlock 2개 이상의 프로세스가 서로 작업이 끝나기를 기다리는 상태로 더 이상 진행이 불가능한 상황을 교착상태라고 한다. 교착상태와 기아현상 기아현상: 다른 우선순위 프로세스가 완료되고 운영체제로부터 자원을 할당받을 때까지 기다리는 현상 교착상태: 여러 프로세스가 같이 자원을 사용하다 발생하는 더 이상 진행이 불가능한 상태가 되는 현상 - 교착상태 예시 P1 프로세스는 프린터를 사용 중이면서 디스크에 대한 사용을 요청 중에 있다. P2 프로세스는 디스크를 사용 중이면서 프린터에 대한 사용을 요청 중에 있다. 두 프로세스 중 한 프로세스가 자원을 반납하거나 사용 요청을 중지하지 않는 이상 더 이상 실행이 불가능하다. 교착상태 필요조건 --..

[운영체제] 프로세스 동기화

독학사- 운영체제 편을 공부하고 정리한 내용입니다. 공유자원 공유 자원은 여러 프로세스 혹은 스레드가 공유하는 변수, 메모리, 파일 등을 말한다. 접근 순서에 따라 공유 자원에 대한 데이터가 올바르지 못한 결과가 생길 수 있다. - 생산자 소비자 문제 공유 자원 접근 순서에 따라 결과가 달라지는 예로, 생산자 프로세스가 생산하는 정보를 소비자가 소비하는 형태이다. 생산자 소비자 while(true){ /* produce an item in next produced * / while(counter == BUFFER_SIZE) /* do nothing */ buffer[in] = next produced in = (in + 1) % BUFFER_SIZE; counter++; } while(true){ whi..

[운영체제] 프로세스 스케줄링

스케줄링 여러 프로세스가 사용하는 자원을 어떤 시점에 어떤 프로세스에 할당할지 결정하는 것 스케줄링의 목적 - 프로세서의 이용률을 높이고 처리율을 향상 하나의 CPU에서 여러개의 프로세스를 실행하는 다중 프로그래밍 방식은 프로세스가 입출력 등으로 대기 상태로 진입 시 다른 프로세스로 교체해 (문맥 교환) 프로세서의 유휴 시간을 줄이고 주어진 시간 동안 처리하는 작업량을 증가시킬 수 있다. - 응답시간을 최소화 또한 시분할 시스템에서 프로세스에 할당된 시간이 만료됨에 따라 교체하여 들어올 프로세스를 결정하는 것도 CPU 스케줄러가 담당한다. - 자원할당의 공정성 모든 프로세스가 자원을 공평하게 사용할 수 있도록 해야 한다. - 실행 대기 방지 무한히 대기하는 프로세스가 없게 해야 한다. - 우선순위 우선순..

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

독학사- 운영체제 편을 공부하고 정리한 내용입니다. 프로세스 개념 커널에 등록되어 실행중인 프로그램을 의미 디스크에 있던 프로그램을 메모리에 적재하여 운영체제의 제어를 받는 상태이다. 프로세서 점유 시간, 메모리, 파일 같은 자원을 할당받는다. 프로세스는 활동상태를 나타내는 프로그램 카운터와 프로세서 레지스터를 포함한다. 별도의 주소공간을 가지며 코드, 데이터, 힙, 스택으로 분리된 메모리 공간을 가진다. - 프로세스 메모리 구조 코드(text segment): 실행 가능한 명령어들이 포함된 코드가 정의되어있다. 수정(write)이 불가능하다. 초기화된 전역 변수(data segment): 초기값이 있는 전역 변수가 정의되어있다. 초기화되지 않은 전역변수(BSS): 초기값이 없는 전역 변수가 정의되어있다..

[운영체제] 명령어 구조와 사이클 / 인터럽트 / 커널

독학사- 운영체제 편을 공부하고 정리한 내용입니다. 명령어 구조 프로세서는 명령어에 따라 레지스터 값(피연산자)을 이용하여 연산을 실행한다. 연산 부호(명령부)와 피연산자들(주소부로)로 나누어져 명령 레지스터 IR(Instruction Register)에 저장되어있다. 연산 부호 (+,-,*,/,mov,cmp) 피연산자1 피연산자2 ... 피연산자n 1) 연산 부호 프로세서가 실행할 연산을 정의한다. 산술 연산, 논리 연산, 비트 쉬프트, 보수 등의 연산을 실행한다. 2) 피연산자 연산할 데이터 정보를 저장한다. 일반적으로 메모리, 외부 기억장치, 입출력 장치 등에 있는 메모리 주소를 피연산자(레지스터)로 가져와 필요한 연산을 수행한다. 명령어 실행 - 관련 CPU 내부 레지스터 IR: Instructi..

[운영체제] 컴퓨터 시스템의 구성

독학사- 운영체제 편을 공부하고 정리한 내용입니다. 컴퓨터 하드웨어의 구성 운영체제: 하드웨어 자원을 관리하는 소프트웨어 하드웨어: 프로세서, 메모리, 주변장치로 구성되고 이들은 시스템 버스로 연결 - 폰 노이만 구조 CPU, 메모리, 입출력 장치, 저장장치가 버스로 연결되어 있는 구조 "모든 프로그램은 메모리에 올라와야 실행할 수 있다" 프로세서 중앙처리장치 CPU (Central Processing Unit) 연산장치, 레지스터, 제어장치로 구성되고 이들은 내부 버스로 연결 모든 연산은 레지스터에 저장된 데이터에 대해서만 수행 제어장치는 시스템 버스를 통해 주 메모리에서 레지스터로 데이터를 올리거나 내림 또한 연산을 위한 제어 신호를 보냄 - 레지스터 구분 1) 용도: 전용/범용 레지스터 2) 정보 ..

[운영체제] 운영체제 개념

운영체제 사용자가 응용 프로그램을 실행할 수 있는 환경을 제공하고 하드웨어 자원을 효율적으로 관리할 수 있도록 다양한 기능을 제공 운영체제의 구성요소 - 사용자 컴퓨터를 사용하는 사람, 장치 또는 다른 컴퓨터 - 소프트웨어 기능 수행을 위한 모든 프로그램 1. 시스템 소프트웨어: 하드웨어 자원을 관리하고 응용 프로그램의 실행을 지원. ex) 장치 드라이버 2. 유틸리티: 보조적인 역할로 시스템을 유지하고 성능을 개선. ex) 프로세스 관리자, 디스크 조각 모음 3. 응용 프로그램: 특정 작업을 수행하는 목적. ex) 웹 브라우저, 게임, 동영상 편집 프로그램 - 하드웨어 컴퓨터를 구성하는 물리적인 장치. ex) CPU, 메모리, 주변장치 운영체제의 역할 하드웨어 및 사용자, 응용 프로그램, 시스템 프로그..

[네트워크] 응용 계층 (2) DNS 도메인 네임 시스템

DNS (Domain Name System) - 배경 모든 전송은 목적지의 IP 주소를 알고 있어야 전송이 가능하나 응용을 위한 모든 IP 주소를 알기 힘들고 변동되는 경우가 많다. 문자열과 같은 직관적인 "이름"으로 IP 주소를 명명할 수 있다. 사람이 읽을 수 있는 이름, 호스트 이름(hostname))으로 간단히 원하는 서비스를 요청할 수 있다. - Domain Name System/Service (DNS) 계층적으로 구성된 분산형 데이터 베이스 시스템. DNS 서버 혹은 네임 서버라고 한다. 사용자가 hostname에 대응하는 IP 주소를 요청할때 DNS 응용프로토콜을 사용한다. - 분산적, 계층적 DNS 서버 DNS 서버는 계층적으로 분할 되어 있고 트리형식으로 각 상위 레벨 도메인은 하위 레벨..

[네트워크] Web Request를 통한 인터넷 연결 과정

Web Request를 할 때 일어나는 과정을 정리해보고 네트워크 과목에서 배운 내용을 복습하자. 출처: wiki.ucalgary.ca/page/Courses/Computer_Science/CPSC_441.W2014/Chapter_5:_Link_Layer.html 한 학생이 학교 도서관에서 노트북을 꺼내 인터넷을 연결하고 구글 사이트를 접속하려고 한다. 이때 일어나는 모든 네트워크 상의 요청을 알아보자. 인터넷 연결 과정 (자신의 IP주소, 기본 게이트웨이, 서브넷 마스크, DNS 서버 주소 요청) 1) 먼저 학교 네트워크를 통해 인터넷 접속을 위한 자신의 IP주소, 기본 게이트웨이, 서브넷 마스크, DNS 서버 주소를 알아야한다. 2) 최상위 계층부터 DHCP, UDP, IP, 802.3 Etherne..

[네트워크] 링크 계층 (2) MAC 주소 / ARP 주소 결정 프로토콜 / Ethernet 프로토콜

MAC(Media Access Control) 주소 링크 계층에서 사용되는 48 bits 길이의 물리적인 주소 cf) IP 주소: 네트워크 계층에서 사용되는 32 bits(128 bits) 길이의 논리적인 주소 4A 28 8E 3C AD FE 랜 카드 제조사 일련번호 장치 고유 일련번호 전 세계에서 유일한 장치 고유 번호 지역에 상관없이 같은 의미로 통용된다. - MAC 주소, 왜 필요한가? 1. LAN과 같은 한 네트워크 상에서 물리적으로 연결된 링크 인터페이스끼리 데이터 그램을 전송하기 위해 필요하다. 적용된 링크 인터페이스 기술(ex. Ethernet, FDDI 등)이 다를 수 있기 때문에 통용가능한 주소가 필요하다. 2. 다른 IP 주소 네트워크에 있는 목적지 호스트를 특정하기 위해서 사용된다. ..