CPU 스케쥴링메모리에 있는 준비(READY)상태의 프로세스 중 하나를 선택해 CPU자원을 할당하는 것 CPU 스케쥴링이 일어나는 시점기존에 CPU를 사용하던 프로세스가 계속 프로세스를 사용할 수 있는데도 불구하고 자원을 빼앗는지에 대한 여부로 비선점/선점으로 나눈다. Non Preemptive(비선점)일단 CPU가 프로세스에 할당되면, 프로세스가 종료하던가 또는 대기상태로 전환해 CPU를 해제할 때까지 CPU를 점유하는 방법.모든 프로세스에 대해서 공정한 처리가 가능하지만 긴급 응답을 요하는 작업에는 좋지 못하다. 짧은 작업이 긴 작업이 끝날 때까지 기다리는 문제점이 생길 수 있다.- 실행상태 → 대기상태 : 입출력 요청- 종료될 때예) FCFS, SJF, HRN Preemptive(선점)한 프로세스가..
쓰레드 동기화- 쓰레드의 실행 순서를 정의하고, 이 순서에 반드시 따르도록 하는 것- 메모리 접근에 있어서 동시 접근을 막는 것 임계 영역- 배타적 접근이 요구되는 공유 리소스에 접근하는 코드 블록을 의미 유저모드 동기화동기화가 진행되는 과정에서 커널모드로의 전환이 불필요하므로 성능상에 이점이 있다.critical section : 메모리 접근 동기화- 전역으로 선언된 변수 하나의 접근 방식을 동기화Interlocked Family Of Function : 메모리 접근 동기화- 함수 내부적으로 한 순간에 하나의 쓰레드에 의해서만 실행 커널모드 동기화커널모드로의 전환이 필요해서 성능은 저하되지만 유저모드에서 제공 못하는 기능을 제공할 수 있다.Mutex : 메모리 접근 동기화- 단순화된 세마포어- 공유된 ..
Micro Kernel- 꼭 필요한 핵심적인 기능만 남겨둔 최소한의 커널- 커널에서 제공하는 기능 : IPC, 동기화, 프로세스/메모리 관리 등- 사용자 프로세스 형태로 제공 : 파일시스템, 네트워크, 입출력 장치 관리- 입출력장치에 대한 서비스도 인터럽트가 들어오면 커널이 인터럽트를 처리하는 프로세스에게 메시지를 보내어 처리해야함- 이식성이 뛰어나 커널 수행 중에도 서비스를 동적으로 추가할 수 있다.> 모든 기능을 다 하지 않고 유저레벨로 올려서 처리하므로 이식성이 뛰어나고 안전하지만 느리다는 단점이 있다. Monolithic Kernel- 모든 커널의 기능을 커널의 내부에 시스템호출과 인터럽트 처리 부분으로 포함하여 제공- 모든 서비스는 시스템 호출을 통해 제공하는 거대한 객체에 비유될 수 있다.- ..
DeadLock- 한정된 자원을 여러 곳에서 사용하려고 할 때 발생한다. 발생 조건- 상호배제(Mutual Exclusion) : 프로세스들이 필요로 하는 자원에 대해 배타적인 통제권을 요구- 점유대기(Hold and wait) : 프로세스가 할당된 자원을 가진 상태에서 다른 자원을 기다린다.- 비선점(No preemption) : 프로세스가 어떤 자원의 사용을 끝낼 때까지 그 자원을 뺏을 수 없다.- 순환대기(Circular wait) : 각 프로세스는 순환적으로 다음 프로세스가 요구하는 자원을 가지고 있다. Deadlock 처리교착상태 회피 - 은행원 알고리즘- 프로세스가 자원을 요구할 때 시스템은 자원을 할당한 후에도 안정상태로 남아있게 되는지를 사전에 검사하여 교착 상태를 회피하는 기법- 안정 상..
프로세스- 실행 중인 프로그램을 의미한다.- 리소스와 스레드로 구성된다.- 코드, 스택, 데이터, 힙 영역으로 이루어져있다. 스레드- 프로세스 내에서 생성,실행되는 하나의 실행주체이며 여러 개가 동시에 생성이 가능하다.- 자원소모가 줄어들고 응답시간이 단축된다. - 코드, 데이터, 힙 영역을 공유하고 스택과 레지스터를 스레드마다 각각 할당받는다.- context switch할 때, stack영역만 switch하면 되므로 프로세스 스위칭보다 빠르다. Multiprogramming / Multiprocessing / MultithreadingMultiprogramming- Memory 관점에서 여러 개의 프로세스 수행하는 것- 프로세서의 자원낭비를 최소화하기 위해 낭비되는 시간을 다른 프로그램(프로세스) 수..
- Total
- Today
- Yesterday
- 스프링
- HTTP
- RelativeLayout
- LinearLayout
- DATABASE
- OS
- 네트워크
- 윈도우
- C
- handshake
- 알고리즘
- ConstraintLayout
- layout
- 이진탐색트리
- frameLayout
- 정렬 알고리즘
- 스프링부트
- debug
- listview
- adapter
- BOJ
- 퀵정렬
- 백준
- 안드로이드
- 백준알고리즘
- Android
- 운영체제
- C++
- WinDbg
- windows
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |