Deadlock
OS2024. 10. 28. 03:35Deadlock

Deadlock- 해결법 x- 두개 이상의 프로세스가 상대방이 가진 자원을 가지고자 함- 자원을 가지려고 무한정 기다림 그런데 블락되어있기 때문에 영원히 아무것도 못함 -> 기아 현상- os는 비용이 많이 들기 때문에 데드락을 무시함- 데드락의 자원은 상호배타적임 즉 독점적으로 자원을 사용함  Resource Allocation Graph- cycle이 존재시 데드락 발생 가능성 O- 하나의 인스턴스를 가지는 자원이 있다면 데드락 무조건 발생, 여러개면 데드락 가능성 있음- 즉 사이클이 없으면 데드락이 없음  발생 조건 4가지 1. 상호 배제 Mutual Exclusion- 독점 사용, 한 프로세스만이 그 자원 사용 2. 점유하며 대기 Hold and Tight- 하나의 자원을 가지면서 다른 프로세스가 ..

Process 동기화
OS2024. 10. 27. 01:26Process 동기화

Atomic더이상 쪼갤 수 없는, 중간에 방해받지 않고 연산이 완전히 끝나는 연산 Process Synchrinization1. 공유데이터에 대한 동시엑세스로 인해 데이터의 불일치가 발생할 수 있음2. 데이터의 일관성을 유지하려면 협력 프로세스의 질서있는 실행을 보장하는 매커니즘이 필요함 즉 동시접근시 문제가 발생하니 동기화로 해결한다. 동기화여러 프로세스나 스레드가 공유 자원에 접근할 때, 데이터의 일관성을 유지하고 충돌을 방지하기 위한 기술- 공유 자원 보호, 정확한 실행 순서 보장, Race condition,Critical section problem 방지 Interleavingatomic하지 않고 한줄마다 인터럽트 가능 -> 실행되다가 순서가 막 섞임   Race condition다중프로그래밍 ..

OS2024. 10. 27. 00:46OS Scheduling

Scheduling운영체제에서 프로세스 또는 스레드에 CPU 자원을 할당하는 과정 Scheduling 방식선점형 스케줄링 (Preemptive Scheduling) - 정의 실행 중인 프로세스를 강제로 중단하고 다른 프로세스에 CPU를 할당 - 장점: 빠른 응답성, 효율적인 CPU 활용 - 단점: 높은 컨텍스트 스위칭 오버헤드, 우선 순위 역전 문제- Round Robin, SRTF비선점형 스케줄링 (Non-Preemptive Scheduling)   - 정의: 현재 프로세스가 자발적으로 종료될 때까지 CPU를 점유 - 장점: 구현 간단, 오버헤드 적음 - 단점: 긴 프로세스 대기 문제, 응답성 저하- FCFS, SJF FCFS (First-Come, First-Served)- Non-Preemptive..

Process, Thread
OS2024. 10. 26. 18:38Process, Thread

Process메인메모리에 로드되어 실행 중인 프로그램  PCB - 만약에 process a를 실행해야하면 pcb a라는 자료구조를  os가 가지고 있는 것임 - 즉 각 프로세스를 컨트롤하기 위해 각 프로세스와 연관된 정보를 보관하는 자료 구조(저장 장소) - os가 가짐 메인메모리에 들어있는 구조로 스택 아님  cpu switch  - executing되다가 다른 프로세스 P1을 수행시키기 위해 PCB0에다가 P0프로세스 정보를 저장 - 그리고 레지스터에 PCB1에 저장되어있던 process 1 정보를 가져와 P1을 수행 - 수행중인 프로세스를 변경할 때 레지스터에 프로세스의 정보가 바뀌는 것 : Context Switching  - CPU가 이전의 프로세스 상태를 PCB에 보관하고, 또 다른 프로세스의..

OS2024. 10. 26. 17:58Multi Programmed System : Dual- Mode, protection 기법

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 모드로 전환해야함- 인터럽트 발생..

OS2024. 10. 26. 17:43저장 구조 및 입출력

Main Memory- cpu가 직접 접근할 수 있는 유일한 대용량 저장장치- DRAM이라 불리는 반도체 기술 (휘발성)- cpu와 큰 속도 차이로 인해 메모리 버퍼 사용 -> 캐시- memory-mapped I/O   -> cpu가 i/o 장치를 엑세스할때 메모리에 바로 메모리 주소의 일정 범위를 장치 레지스터로 연결 캐시- 느린 저장장치로 부터 좀더 빠른 저장장치로 임시적으로 복사되는 정보- 정보를 좀더 빠른 저장장치에서 검색하고 있으면 곧바로 정보 사용    없으면 캐시로 데이터 복사하고 캐시의 데이터 사용- 프로그램들은 가장 최근에 엑세스 했던 데이터를 다시 엑세스하고, 최근 참조했던 데이터 주소를 참조함 Secondary Storage-  HDD, SSD 처럼 비휘발성  Synchronous 동..

OS Interrupt, I/O구조 입출력 과정, DMA
OS2024. 10. 26. 17:37OS Interrupt, I/O구조 입출력 과정, DMA

개념cpu가 어떤 프로그램을 실행하고 있는데 당장 처리해야하는 프로그램이 생겼을 경우인터럽트 신호를 보내서 먼저 처리해야하는 프로그램을 처리하고 다시 에전 프로그램으로 돌아가는 것-> 어떤 사건이 발생했음을 알려주는 신호로 하드웨어, 소프트웨어가 발생시킨다. *발생이란?- cpu 제어권이 인터럽트서비스루틴(ISR)으로 자동으로 넘어감  ->하드웨어적으로 그렇게 설계됐음- 넘어간 뒤에는 핸들러코드 실행됨   -> 프로그램 코드로 해당 인터럽트를 처리함 *cpu는 인터럽트 요청을 받으면 현재 수행중인 프로그램을 일시중단하고, cpu 정보를 안전한 장소(스택) 에 저장한 후 ISR을 실행한 후 다시 복귀함. *인터럽트 실행 중 또 인터럽트 오면1. 블락2. 급한 것 먼저 처리함 인터럽터 벡터- 인터럽트 발생시..

Virtual Memory 가상 메모리
OS2024. 10. 25. 16:06Virtual Memory 가상 메모리

0. Virtual Memory- 주소 공간만 있고 실제 저장 공간x, 그냥 가상의 주소일 뿐- 데이터는 Physical Memory와 hdd의 swap 영역에 있음 - 프로세스 전체가 메인메모리에 올라오지 않더라도 실행이 가능한 기법- 주소 공간을 여러 Physical Memory가 공유- 실제 물리적 메모리 개념과 논리적 메모리 개념 분리 - vm = pm + swap area  1. 사용 이유?cpu 속도가 매우 빠르므로, 노는 상황 발생시 이를 해결하려면 작업 개수를 늘려야함   1. os는 컴퓨터 자원을 효율적으로 관리해야한다. -> 물리 메모리 수 많게 해서  cpu 이용률을 높이면 됨 -> -> 근데 그러려면 메인 메모리 키워야함 -> 비싼 자원이라 무한정 늘릴 수 없음 -> 한정된 메인 메..

OS란? , 컴퓨터 시스템 작동 방식
OS2024. 10. 25. 15:56OS란? , 컴퓨터 시스템 작동 방식

OS- HW를 효율적으로 사용할수있게하는 SW- User의 사용성을 편리하게 해줌- User와 HW 사이 중재자 역할 이러한 시스템을 위해 OS가 제공해야 할 것?1. I/O 루틴- printf, scanf 같은 함수, 프로그램, 코드를 read/write 할 수 있도록 해야함 2. 메모리 관리 여러 작업에 메모리를 할당 3. CPU 스케쥴링충돌일어나지 않게 여러 작업들 중 하나 선택 4.장치 사용 권한   컴퓨터 시스템 - cpu와 각 장치들의 프로세스가 컨트롤러에 있음- 컨트롤러끼리는 시스템 버스로 데이터를 주고 받음 - 시스템 버스는 공용이므로 동시사용X- cpu에게 사용권을 받아 사용해야함- cpu는 데이터를 이동시킴 - 각 장치들의 컨트롤러는 해당장치를 관리, 자신만의 로컬버퍼를 가짐(일종의 메..

컴퓨터 시스템 유형
OS2024. 10. 25. 15:30컴퓨터 시스템 유형

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..

image