전공(33)
-
Routing in Switched Data Network
Routing in Packet Switching Network 라우팅이 스위치 네트워크를 설계하는데 주요 설계 요소임 네트워크를 통해 엔드노드들 간의 루트를 선택하는 것이 라우팅임 라우팅 알고리즘이 가져야 하는 요구 조건 정확성 단순성 견고성 안정성 공정성 최적성 효율성 Performance Criteria 라우팅 알고리즘 평가 기준 루트를 선택하기 위해 사용됨 Minimum hop : 가장 간단한 형태 hop : 하나의 노드와 다음 노드 사이 거리가 길더라도 hop이 적으면 서비스하는 데 걸리는 시간이 짧다고 봄 최소가격 알고리즘(least cost) 최소가격알고리즘은 융통성이 있어 minimum hop보다 일반적 Elements of Routing Techniques for Packet Switch..
2023.09.28 -
Asynchronous Transfer Mode
The Role of Asynchronous Transfer Mode(ATM의 역할) ATM은 효율적인 스위칭 방식 통계적 다중화를 기반 전송되는 패킷의 길이는 고정길이 → 고정 길이 패킷 : Cell 작고 고정된 길이(53byte) 고정길이의 패킷을 사용함으로써 효율적인 다중화 가능 지연을 줄일 수 있음 지연의 변이도 줄일 수 있음 서비스 품질 향상 연결의존서비스 circuit switching의 성능을 가지면서 packet switching의 융통성과 효율성을 가짐 어떠한 서비스도 제공가능(실시간 or 비실시간) : 데이터, 음성, 비디오 QoS 서비스 품질 제공 우선순위 컨트롤 가능 ATM ITU-T : international tele communication union ATU Forum 다중화 ..
2023.09.28 -
Circuit Switching and Packet Switching
Switched Communications Networks switching node(교환노드)는 노드들 간에 데이터를 전송하는 교환 시설을 제공 stations : 네트워크에 접근하는 장치들 nodes : 통신을 제공하는 교환 장치들 전송 링크로 연결됨 point to point로 전용됨 FDM와 TDM을 사용하여 다중화됨 네트워크 안에 있는 요소들은 node 네트워크 밖에 있는 요소들은 station station은 end user end user의 종류 : PC, Server, Mainframe(대형컴퓨터) 네트워크의 고객이 될 수 있음 고객들은 또 다른 고객들과 통신이 가능해야 함 ⇒ 네트워크 필요 네트워크 주요 구성 요소 : node, link Switching node(교환노드) : 노드와 노..
2023.09.28 -
메인 메모리 관리
메모리란 무엇인가? 메모리란 주소(Address)를 통해 접근할 수 있는 저장 장치 주소는 메모리상의 서로 다른 위치를 구분하기 위한 숫자 32비트 시스템 2^32 개만큼의 메모리 위치 구분 가능 2^32 bytes의 메모리 공간 사용 가능 64비트 시스템 2^63 개 만큼의 메모리 위치 구분 가능 2^64 bytes의 메모리 공간 사용 가능 주소 바인딩(Address Binding) 메모리의 논리 주소와 물리 주소를 연계하는 작업 논리주소(Logical Address) 프로세스가 메모리에 적재될 때 할당되는 가상의 (독자적인) 위치 물리주소(Physical Address) 프로세스가 실제 배치되는 메모리상의 위치 주소 바인딩의 방식 Compile Time Binding 프로세스가 적재될 메모리 위치를 ..
2023.09.26 -
데드락
식사하는 철학자 문제 식사하는 철학자 문제 (Dining philosophers problem) 5명의 철학자(philosopher)가 둥근 탁자에 둘러앉아 있고 탁자 중앙에는 밥 한 공기가 있다. 총 5개의 젓가락이 철학자 사이마다 있다. 철학자는 식사를 하거나 생각한다. 생각할 때는 젓가락이 필요 없다. 식사를 하려면 자신의 왼쪽, 오른쪽에 있는 젓가락을 들어야 한다. 철학자 : 협력적 스레드(혹은 프로세스) 중앙 밥공기 : 각 스레드가 처리하고자 하는 자신의 작업 젓가락 : 공유 자원(혹은 공유 데이터) 젓가락에 대한 상호 배제 보장 필요 철학자 스레드를 위한 루틴 순서 일단 생각을 하다가 배가 고파서 밥을 먹기로 한다. 밥을 먹기 위해 자기 위치의 좌우 젓가락을 집는다. 밥을 먹는다. 배가 부르니..
2023.09.26 -
동기화 응용
컨디션 변수 스레드 실행 중간 조건 검사 부모 스레드가 작업을 시작하기 전 자식 스레드가 작업을 끝냈는지 알고 싶다면? 회전(spin) 기반 공유 변수 활용 but 바쁜 대기 문제가 남음 컨디션 변수(Conditional variable) 일종의 큐 자료 구조 어떤 실행의 상태(또는 어떤 조건)가 원하는 것과 다를 때, 조건이 참이 되기를 기다리며 스레드가 대기할 수 있는 큐 스레드의 바쁜 대기 문제를 해결할 수 있음 pthread_cond_t c; 컨디션 변수 c 정의] pthread_cond_wait(pthread_cond_t *c, pthread_mutex *m) 스레드가 스스로를 재우기(sleep) 위하여 호출 mutex lock변수 m의 락을 해제하고, 스레드를 잠재움 다른 스레드로부터 시그널을..
2023.09.26 -
동기화(Synchronization)
협력적 프로세스(Cooperating Process) 협력적 프로세스란? 동시에 실행되며 서로 영향을 끼치는 프로세스들 데이터를 공유하는 프로세스들 동시 처리 (concurrent processing) 협력적 프로세스들이 동시에 공유 데이터에 접근해서 연산작업을 수행하는 것 하나의 프로세스에 의해 데이터 접근 및 조작을 동일한 데이터에 접근한 기존 프로세스의 연산 작업에 영향을 끼침 데이터 불일치(data inconsistency) 협력적 프로세스들이 서로 다른 공유 데이터 값을 가지고 연산 작업을 처리 통제되지 않은 협력적 프로세스 실행 순서에 의해 발생 은행 공유 계좌 문제 입금 및 인출을 위한 협력적 프로세스 처리 두 개의 협력적 프로세스 A와 B가 은행 공유 계좌에 접근 프로세스 A는 계좌에 돈을..
2023.09.16 -
CPU 스케쥴링
스케쥴링 개요 스케쥴링이 필요한 이유? 제한된 컴퓨팅 자원 위에서의 멀티 프로세싱을 해야 하기 때문 단일 CPU코어에서는 한 시점에 오직 하나의 프로세스만 처리 가능 CPU 스케쥴링 레디큐에 있는 프로세스 중 하나를 선택하여 CPU 자원 할당 스케쥴링 수행 시점 프로세스가 running 상태에서 waiting상태로 변경될 때 프로세스가 running 상태에서 ready상태로 변경될 때 프로세스가 waiting 상태에서 ready상태로 변경될 때 새로운 프로세스가 ready 상태가 될 때 running상태의 프로세스가 종료될 때 비선점 스케쥴링(Nonpreemptive scheduling) Running 상태의 프로세스가 waiting상태로 바뀌면 트리거링 Running 상태의 프로세스가 종료되면 트리거링..
2023.09.16 -
저수준에서의 프로세스 관리
듀얼 모드(Dual Mode) 모드비트(Mode bit) 운영체제 코드의 실행과 일반 사용자 정의 코드의 실행을 구분하기 위해 사용 사용자 모드(User mode) 모드비트 = 1 컴퓨터 시스템이 사용자 응용을 실행할 때 설정 커널 모드(Kernel mode) 모드 비트 = 0 운영체제가 컴퓨터 시스템에 대한 제어를 획득한 후 코드 실행 특권 명령(Privileged instruction) 컴퓨터 시스템 보호를 위해 운영체제만이 접근할 수 있는 명령어 집합 커널모드에서 실행 컴퓨터 시스템의 명령 실행 주기 시스템 부트시 하드웨어는 커널 모드에서 시작 운영체제 적재 이후 사용자 모드에서 사용자 프로세스 실행 트랩/인터럽트 발생 시 커널 모드로 전환(모드비트=0) 이후 사용자 프로세스가 제어 획득(모드비트=..
2023.09.16 -
프로세스
프로세스 프로세스란? 프로그램에 대한 실행 인스턴스(running instance) 실행 가능 파일(executable file)이 메모리에 적재(load)될 때 프로그램은 프로세스가 됨 멀티 프로세싱 제한된 컴퓨팅 자원 하에 다수의 프로세스가 실행 CPU utilization(CPU이용률), User interaction(렉이 없는 즉각적인 서비스), Processing speed(처리 속도) 프로세스 적재 프로세스의 메모리 할당 텍스트(text) : 프로세스 인스트럭션 코드 프로세스를 처리할 수 있도록 하는 명령어들이 저장된 영역 데이터(data) : 프로세스 데이터, 정적/전역 변수들 프로그래밍이 프로세스로 시작될 때 할당되고 프로그램이 종료되면 할당 해제됨 힙(heap) : 동적 메모리 할당(예:..
2023.09.16 -
리눅스
sudo su root 대부분의 시스템 관련 commands는 root권한 필요 sudo(superuser do) : "root"권한을 가지고 커맨드 실행 su(switch user) : 접속 계정을 변경 apt/apt-get 데비안 기반 리눅스 계열에서 패키지 배포를 위해 사용하는 인터페이스 apt(apt-get) update : apt 패키지 레파지토리 목록 갱신, root권한 요구 apt(apt-get) upgrade : apt 패키지 업그레이드, root권한 요구 망 접속 프로토콜 Telnet 바이트 스트림에 기반한 authorization 낮은 보안성 ssh(secure shell) login/password입력을 통한 autorization 리눅스에서 원격 접속 프로토콜로서 주로 사용 리눅스 ..
2023.09.16 -
컴퓨터 시스템과 운영체제
컴퓨터 시스템의 4가지 요소 하드웨어(HW) 기본적인 컴퓨팅 자원을 제공 중앙처리장치(CPU), 메모리, 입출력(I/O) 장치 등 운영체제(Operating systems) 다양한 사용자를 위해 다양한 응용과 컴퓨터 하드웨어 사이의 interaction을 제어 및 조정 프로그램(system programs/application programs) 사용자의 문제를 해결하기 위해 컴퓨팅 자원을 사용 워드 프로세서, 스프레드시트, 컴파일러, 웹 브라우저 등 사용자(users) 사람, 기계, 혹은 다른 컴퓨터들 사용자 관점에서의 운영체제 사용자의 관심 이슈 프로그램을 사용하기 편리할 것 프로그램을 실행할 때 성능이 좋을 것 사용자가 신경 쓰지 않는 이슈 전체 시스템의 자원 이용률 컴퓨터 종류에 따라 달라지는 이슈..
2023.09.16