목록Computer & Data (155)
이야기박스
§ 페이징 (Paging) - 가상주소 (Virtual Address) ; 프로그램 주소, 프로세스가 생성하는 주소- 사상 (Mapping) ; 가상 주소를 물리주소로 매핑- MMU ; Memory Management Unit ; 이를 관리해 주는 것 ▣ MMU ( Memory Management Unit )- 매핑을 관리 - page : 가상주소 공간의 단위- page frame : 물리 메모리에 대응되는 단위- page fault : page frame에 없고 page에 있음, 접근할 메모리가 Virtual Memory에 있는 경우- 페이지 테이블 (Page table) ; 페이지의 정보를 갖고 있음 --> 페이지 수가 많아진다면, 페이지 테이블도 커짐; 페이지 번호 -> 페이지 테이블의 인덱스-->..
§ 메모리 추상화가 없는 컴퓨터▣ 메모리 관리- 메인 메모리 자원 관리 ; 주 메모리 - 보조기억장치 프로세스의 이동 가능 여부- 메모리 계층 구조 ; 캐시, 메인 메모리 등- 메모리 관리자 ; 메모리 계층을 관리하는 운영체제의 특정 부분 ▣ 단일 프로그래밍 (monoprograming)- 가장 간단한 메모리 관리기법 ; 모든 프로그램은 물리 메모리를 직접 사용- 병렬성은 제공 됨 운영체제 파괴의 위험 , 시스템 중지의 위험- 여러 프로그램을 동시에 실행시키기 어려워 짐 ▣ 주소 공간 개념- 재배치 (Relocation) : 메모리에 적재되는 프로그램- 보호 (Protection) : 다른 프로세스의 파티션과의 문제- 베이스(Base)와 한계(Limit) 레지스터==> 주소 공간(address) 라는 새..
▣ 식사하는 철학자 문제 (Dining Philosophers) - 철학자들이 원탁에 모여 식사함 - 먹는데는 양쪽의 두개의 포크가 필요하다 - 하나씩 포크를 들면, 다른 하나의 포크를 얻기 위해 기다리게 됨 (기아상태) - 어떻게 이러한 데드락을 피할 수 있는가 #define TRUE1 #define FALSE0 #define N5 #define LEFT(i+N-1)%N #define RIGHT(i+1)%N #define THINKING0 #define HUNGRY1 #defineEATING2 typedef int semaphore; int state[N]; semaphore mutex = 1; semaphore s[N]; void philosophere(int i) { while (TRUE) { th..
▣ 언제 스케줄링 하는가?- 새 프로세스가 생성될 때- 프로세스가 종료될 때- 프로세스가 블록 될 때- I/O interrupt가 발생할 때 ▣ 스케줄링 결정- running -> waiting- running -> ready- waiting -> ready- 종료 ▣ 스케줄링 알고리즘- 비선점 (nonpreemptive) : 완료되기전에 스위칭 불가능- 선점 (preemptive) : 완료되기전에 스위칭 가능 ▣ 스케줄링 최적화- max : CPU utilization , throughput- min : turnaround / waiting / response time ▣ 스케줄링 알고리즘 부류- 배치 시스템- 대화식 시스템- 실시간 시스템 ▣ 스케줄링 목표- 공평함 : 각 프로세스에게 공평한 목의 C..
▣ IP에서 메시지 단편화- MTU (Maximum Transmission Unit) : 네트워크 구간에서 한번에 전송할 수 있는 패킷의 최대 크기- MTU보다 큰 메시지를 전달 할 경우에는 한번에 전달 할 수 없기 때문에 이를 여러개의 IP 패킷으로 단편화한다. - 과정a. 각각의 완벽한 IP 프로토콜 헤더(20byte)를 가지고 있음b. 각각의 단편들은 그들의 목적지까지 서로 다른 경로를 따라 도달할 수 있다.c. 수신 개체는 메시지의 단편을 전체 메시지로 재합성할 수 있다. - 예제. 초기상태a. 네트워크 최대 패킷 길이 : 128 바이트b. 전송하려는 데이터의 바이트 수 : 300 바이트c. 패킷의 식별번호 : 2354d. 옵션 없음- 단편화 결과a. 단편 1 : 길이 124( 헤더 20 + @ ..
§ TCP / IP ▣ IP 주소 클래스 ( A, B, C, D ) & 서브넷 마스크 - Class A : 아주 많은 호스트를 가지는 네트워크a. 최상위 비트 : 0 , 나머지 7비트 : 네트워크 ID, 나머지 24비트 : 호스트 IDb. 범위 : 1.0.0.1 ~ 126.255.255.254- Class B : 중간 정도 규모 ~ 대규모 네트워크a. 최상위 2 비트 : 10 , 나머지 14비트 : 네트워크 ID, 나머지 16비트 : 호스트 IDb. 범위 : 128.0.0.1 ~ 191.255.255.254- Class C : 소규모 네트워크a. 최상위 3 비트 : 110 , 나머지 21비트 : 네트워크 ID, 나머지 8비트 : 호스트 IDb. 범위 : 192.0.0.1 ~ 223.255.255.254-..
▣ IPC ( Interprocess Communication )● 프로세스간 통신 쟁점- 프로세스간 정보를 어떻게 전달할 것인가?- 다수의 프로세스에서 critical activity에서 다른 프로세스를 어떻게 방해하지 않을 것인가?- 서로 의존성이 있는 경우, 어떤식으로 순서화하는가?==> 스레드들 간에도 동등한 수준으로 적용 ▣ 경쟁 조건 ( Race Conditions)● 둘 이상의 프로세스가 공유 메모리를 읽고 기록할 때, 마지막 결과는 어느 프로세스가 수행되었는가에 의존한다.- 해결 : 상호배제 --> 둘 이상의 프로세스가 동시에 공유 데이터의 읽기와 쓰기가 불가능하게 하는 방법 ▣ 임계 구역 (Critical Regions); 공유 메모리에 접근하는 프로그램 부분; 어떤 두 프로세스도 동시에..
▣ 커널모드와 사용자 모드○ 커널 모드 - 모든 하드웨어에 대한 접근을 가지고 있다.○ 사용자 모드- 일부 장치에 대한 명령만 가능- 기계의 제어, I/O와 같은 작업은 불가능 ▣ 시분할 시스템 ( time sharing system) & 다중프로그래밍 ( multiprogramming)○ 시분할 시스템- CPU관점에서의 시간 다중화를 이용한 시스템○ 다중프로그래밍- 메모리 관점에서 공간 다중화를 이용한 프로그래밍 기법 ▣ 멀티프로세싱(multiprocessing) & 멀티스레드(multithreads)○ 멀티프로세싱- 다수의 프로세서를 이용, 프로세스를 동작하는 기법○ 멀티스레드- 프로세스 내부에 다수의 스레드를 이용하는 기법 ▣ 트랩 & 인터럽트○ 공통점- 사용자 모드 --> 커널 모드로 전환○ 차이..