Deadlock- 해결법 x- 두개 이상의 프로세스가 상대방이 가진 자원을 가지고자 함- 자원을 가지려고 무한정 기다림 그런데 블락되어있기 때문에 영원히 아무것도 못함 -> 기아 현상- os는 비용이 많이 들기 때문에 데드락을 무시함- 데드락의 자원은 상호배타적임 즉 독점적으로 자원을 사용함 Resource Allocation Graph- cycle이 존재시 데드락 발생 가능성 O- 하나의 인스턴스를 가지는 자원이 있다면 데드락 무조건 발생, 여러개면 데드락 가능성 있음- 즉 사이클이 없으면 데드락이 없음 발생 조건 4가지 1. 상호 배제 Mutual Exclusion- 독점 사용, 한 프로세스만이 그 자원 사용 2. 점유하며 대기 Hold and Tight- 하나의 자원을 가지면서 다른 프로세스가 ..
Atomic더이상 쪼갤 수 없는, 중간에 방해받지 않고 연산이 완전히 끝나는 연산 Process Synchrinization1. 공유데이터에 대한 동시엑세스로 인해 데이터의 불일치가 발생할 수 있음2. 데이터의 일관성을 유지하려면 협력 프로세스의 질서있는 실행을 보장하는 매커니즘이 필요함 즉 동시접근시 문제가 발생하니 동기화로 해결한다. 동기화여러 프로세스나 스레드가 공유 자원에 접근할 때, 데이터의 일관성을 유지하고 충돌을 방지하기 위한 기술- 공유 자원 보호, 정확한 실행 순서 보장, Race condition,Critical section problem 방지 Interleavingatomic하지 않고 한줄마다 인터럽트 가능 -> 실행되다가 순서가 막 섞임 Race condition다중프로그래밍 ..
Scheduling운영체제에서 프로세스 또는 스레드에 CPU 자원을 할당하는 과정 Scheduling 방식선점형 스케줄링 (Preemptive Scheduling) - 정의 실행 중인 프로세스를 강제로 중단하고 다른 프로세스에 CPU를 할당 - 장점: 빠른 응답성, 효율적인 CPU 활용 - 단점: 높은 컨텍스트 스위칭 오버헤드, 우선 순위 역전 문제- Round Robin, SRTF비선점형 스케줄링 (Non-Preemptive Scheduling) - 정의: 현재 프로세스가 자발적으로 종료될 때까지 CPU를 점유 - 장점: 구현 간단, 오버헤드 적음 - 단점: 긴 프로세스 대기 문제, 응답성 저하- FCFS, SJF FCFS (First-Come, First-Served)- Non-Preemptive..
Process메인메모리에 로드되어 실행 중인 프로그램 PCB - 만약에 process a를 실행해야하면 pcb a라는 자료구조를 os가 가지고 있는 것임 - 즉 각 프로세스를 컨트롤하기 위해 각 프로세스와 연관된 정보를 보관하는 자료 구조(저장 장소) - os가 가짐 메인메모리에 들어있는 구조로 스택 아님 cpu switch - executing되다가 다른 프로세스 P1을 수행시키기 위해 PCB0에다가 P0프로세스 정보를 저장 - 그리고 레지스터에 PCB1에 저장되어있던 process 1 정보를 가져와 P1을 수행 - 수행중인 프로세스를 변경할 때 레지스터에 프로세스의 정보가 바뀌는 것 : Context Switching - CPU가 이전의 프로세스 상태를 PCB에 보관하고, 또 다른 프로세스의..
Multi Programmed System- 효율성을 위해 필요- 여러개의 작업들이 동시에 메인메모리에 적재- cpu는 이 작업들을 실행하며 이용률 증가시킴- 하드웨어 자원들을 필요할때마다 프로세스가 os에게 지원 요청한 후 실행 즉 목적은 cpu 이용률을 최대화 하는 것.......... Dual- Mode- cpu 동작모드- 모드 비트라는 상태비트를 두어 구분 - os/user 를 위해 실행되는 작업 구분 -> 0(moniter)이면 os 1(user)이면 user - moniter 모드 : 모든 명령 실행권한 o, privileged instructions -> os에 의해서만 실행되는 명령- 하드웨어는 os에게 특권을 줌, os가 서비스를 요청하면 moniter 모드로 전환해야함- 인터럽트 발생..
Main Memory- cpu가 직접 접근할 수 있는 유일한 대용량 저장장치- DRAM이라 불리는 반도체 기술 (휘발성)- cpu와 큰 속도 차이로 인해 메모리 버퍼 사용 -> 캐시- memory-mapped I/O -> cpu가 i/o 장치를 엑세스할때 메모리에 바로 메모리 주소의 일정 범위를 장치 레지스터로 연결 캐시- 느린 저장장치로 부터 좀더 빠른 저장장치로 임시적으로 복사되는 정보- 정보를 좀더 빠른 저장장치에서 검색하고 있으면 곧바로 정보 사용 없으면 캐시로 데이터 복사하고 캐시의 데이터 사용- 프로그램들은 가장 최근에 엑세스 했던 데이터를 다시 엑세스하고, 최근 참조했던 데이터 주소를 참조함 Secondary Storage- HDD, SSD 처럼 비휘발성 Synchronous 동..
개념cpu가 어떤 프로그램을 실행하고 있는데 당장 처리해야하는 프로그램이 생겼을 경우인터럽트 신호를 보내서 먼저 처리해야하는 프로그램을 처리하고 다시 에전 프로그램으로 돌아가는 것-> 어떤 사건이 발생했음을 알려주는 신호로 하드웨어, 소프트웨어가 발생시킨다. *발생이란?- cpu 제어권이 인터럽트서비스루틴(ISR)으로 자동으로 넘어감 ->하드웨어적으로 그렇게 설계됐음- 넘어간 뒤에는 핸들러코드 실행됨 -> 프로그램 코드로 해당 인터럽트를 처리함 *cpu는 인터럽트 요청을 받으면 현재 수행중인 프로그램을 일시중단하고, cpu 정보를 안전한 장소(스택) 에 저장한 후 ISR을 실행한 후 다시 복귀함. *인터럽트 실행 중 또 인터럽트 오면1. 블락2. 급한 것 먼저 처리함 인터럽터 벡터- 인터럽트 발생시..
0. Virtual Memory- 주소 공간만 있고 실제 저장 공간x, 그냥 가상의 주소일 뿐- 데이터는 Physical Memory와 hdd의 swap 영역에 있음 - 프로세스 전체가 메인메모리에 올라오지 않더라도 실행이 가능한 기법- 주소 공간을 여러 Physical Memory가 공유- 실제 물리적 메모리 개념과 논리적 메모리 개념 분리 - vm = pm + swap area 1. 사용 이유?cpu 속도가 매우 빠르므로, 노는 상황 발생시 이를 해결하려면 작업 개수를 늘려야함 1. os는 컴퓨터 자원을 효율적으로 관리해야한다. -> 물리 메모리 수 많게 해서 cpu 이용률을 높이면 됨 -> -> 근데 그러려면 메인 메모리 키워야함 -> 비싼 자원이라 무한정 늘릴 수 없음 -> 한정된 메인 메..
OS- HW를 효율적으로 사용할수있게하는 SW- User의 사용성을 편리하게 해줌- User와 HW 사이 중재자 역할 이러한 시스템을 위해 OS가 제공해야 할 것?1. I/O 루틴- printf, scanf 같은 함수, 프로그램, 코드를 read/write 할 수 있도록 해야함 2. 메모리 관리 여러 작업에 메모리를 할당 3. CPU 스케쥴링충돌일어나지 않게 여러 작업들 중 하나 선택 4.장치 사용 권한 컴퓨터 시스템 - cpu와 각 장치들의 프로세스가 컨트롤러에 있음- 컨트롤러끼리는 시스템 버스로 데이터를 주고 받음 - 시스템 버스는 공용이므로 동시사용X- cpu에게 사용권을 받아 사용해야함- cpu는 데이터를 이동시킴 - 각 장치들의 컨트롤러는 해당장치를 관리, 자신만의 로컬버퍼를 가짐(일종의 메..
1.Batch System- 일괄처리(1세대)- 작업들을 쌓아 두고 차례로 진행 (앞 종료 -> 뒤 실행)- 문제 : CPU 속도 > I/O 속도 -> I/O 작업시 CPU 쉼 (낭비) 2. Multi-Programmed Batch System- 1번 단점 해결- 여러 작업들을 대기시켜두고 어떤 작업이 CPU를 쉬게 만들때, 다른 작업을 수행 (다시 실행될때 CPU 획득)즉 작업순서는 지키되 대기상황이 생기면 CPU 우선 사용권을 다음 작업에게 줌 3. Time-Sharing 시분할- 한개의 cpu를 사용할때 a,b,c 프로그램이 동시에 동작하는 것 처럼 만듬- a->b->c 차례로 동작하는데 0.1초 0.1 0.1 매우 빠르게 반복하여 계속 동작하는 것 처럼 보임 - 짧은 시간 간격으로 c..
Service 개념쿠버네티스 네트워크 → 클러스터 내 파드에 접근하는 법파드는 컨트롤러가 관리하므로 한군데에 고정되서 실행되지 않고 클러스터 안을 옮겨다닌다. → 해결 : 서비스를 사용해서 파드가 클러스터 안 어디에 있든 고정 주소를 이용해 접근한다.쿠버네티스야 nginx 웹서버 3개를 webui라는 이름으로 실행해줘 (서버 과부화 날 수도 있음) → 해결 : 쿠버네티스야 webui 파드들을 하나의 IP로 묶어서(=동일한 레이블) 관리해줘 (로드밸런싱) —>결과 : webui 서비스는 nginx 파드들에 대한 단일 진입점(Cluster IP)을 제공하고, 트래픽 자동으로 분산 시킴즉 디플로이에 서비스를 연결하고 라벨이 같은 것들끼리 하나로 묶어서 부하분산을 한다. 보통 같은 기능끼리 묶는다 web, wa..
NAT 패킷 트레이서 실습 라우팅 테이블 작성법1. static : 나에게 안 붙은 네트워크 설정2 .dynamic : 나에게 붙은 네트워크 설정Q. IP주면 라우팅 테이블에 올라오는데 왜 또 세팅해야 하는지? A. 내 네트워크 정보를 OSPF라는 언어==프로토콜 사용해서 전달한다. R1에서 OSPF 설정 걸어도 R0에서 OSPF 설정 하지 않으면 전달되지않음Q.라우터 4대 전부 OSPF 설정하면 안되는 이유 A. R0→R1 내 이더넷에 192.~가 있음 그럼 R1라우터에 사설대역올라감 인터넷 대역엔 올라가면 안되서 R1에 하면안됨R1 ~R3은 OSPF(dynamic)로 연결해주었다.0.0.0.255 =255.0.0.0R0 ==NAT 설정(static)--사설 IP 설정# int gig0/0# no sh..