프로세스 동기화 & 상호배제 다중 프로그래밍 시스템은 여러 개의 프로세스들이 존재한다. 이 프로세스들은 서로 독립적으로 동시에 동작하는데 공유 자원 또는 데이터가 있을 때 문제가 발생할 수 있다. 즉, 같은 공간에 작업을 하면 문제가 발생!! 동기화(Process Synchronization) 프로세스들이 서로 동작을 맞추는 것이다. 프로세스들이 서로 정보를 공유하는 것이다. 비동기화 프로세스들이 서로에 대해 모른다. 그렇다면 왜 동기화가 필요한가? 병행 수행중인 비동기적 프로세스들이 공유자원에 동시에 접근할 때 문제가 발생 할 수 있다. 프로세스가 공유 자원에 접근할 때, 경쟁 조건이 발생하면 공유 자원을 신뢰할 수 없게 만들 수 있다. 이를 방지하기 위해 프로세스들이 공유 자원을 사용할 때 특별한 규..
Basic Scheduling algorithms index FCFS(First-Come-First-Service) RR(Round-Robin) SPN(Shortest-Process-Next) SRTN(Shortest-Remaining Time Next) HRRN(High-Response-Ratio-Next) MLQ(Multi-Level Queue) MFQ(Multi-Level Feedack Queue) FCFS (First-Come-First-Service) key points : 비선점, 선착순 스케줄링 기준 도착 시간(ready queue 기준) 먼저 도착한 프로세스를 먼저 처리한다. 자원을 효율적으로 사용이 가능하다. (High resource utilization!! ) why?? -> 들어오는..
Process Scheduling 스케줄링 여러개의 프로세스가 시스템 내 존재하는데, 이러한 프로세스가 생성되어 실행될 때 필요한 시스템의 여러자원을 해당 프로세스에게 할당하는 작업을 하는 것을 말한다. 다시 말하면 CPU를 사용하려고 하는 프로세스들의 우선순위를 관리하는 일을 한다. 스케줄링 목적 스케줄링의 목적은 당연하게 들리겠지만 시스템의 성능 향상이다. 그렇다면 여기서 말하는 성능은 무엇인가 의문이 들 수 있다. 어떤 작업을 하고 목적이 무엇인지에 따라 성능의 기준은 달라진다. 따라서 목적에 맞는 지표를 고려하여 스케줄링 기법을 선택해야한다. 다음은 대표적인 시스템 성능 지표이다. 응답시간(response time) 작업 요청으로부터 응답을 받을 때 까지의 시간이다. ex) interactive,..
Java Multi Thread Example : Chat 사용한 API 1. ServerSocket 서버 역할을 하는 소켓 객체 클라이언트의 연결 요청을 기다리면서 연결 요청에 대한 수락을 담당한다. public void bind(SocketAddress endpoint) 어떤 소켓으로 연결을 기다릴 것인지 바인딩 public Socket accept() 연결을 기다리며, 연결이 될 때까지 block 상태 2. Socket 클라이언트와 서버 간의 통신을 직접 담당 public SocketAddress getRemoteSocketAddress() 소켓에 연결된 종단의 주소를 반환 public InputStream getInputStream() 소켓을 위한 input stream을 반환 public Out..
프로세스 (Process) 정의 실행중인 프로그램 커널에 등록되고 커널의 관리하에 있는 작업 각종 자원들을 요청하고 할당 받을 수 있는 개체 능동적인 개체 : 실행 중에 각종 자원을 요구, 할당, 반납 프로세스 관리 블록(PCB)을 할당 받는 개체 PCB (Process Control Block) 각 프로세스들에 대한 정보를 관리 프로세스 생성 시, 생성 됨 PCB가 관리하는 정보 PID : 프로세스 고유 식별 번호 스케줄링 정보 : 프로세스 우선순위 같은 스케줄링 관련 정보 프로세스 상태 : 자원 할당, 요청 정보 등 메모리 관리 정보 : page table, segment table 등 입출력 상태 정보 : 할당 받은 입출력 장치, 파일 등에 대한 정보 문맥 저장 영역(context save are..
운영제체 란? 운영체제(Operating System)는 운영체제는 하드웨어와 소프트웨어를 관리하는 소프트웨어 전체이다. 응용 프로그램을 동작시키기 위해 시스템의 자원들을 할당하는 역할을 한다. 운영체제의 역할 User Interface (편리성) CUI GUI EUCI Resource management(효율성) Process and Thread management System management 운영체제의 구조 커널(Kernael) OS의 핵심 부분으로 메모리에 상주한다. 가장 빈번하게 사용되는 기능들을 담당한다. (프로세서, 메모리 등) Resource를 관리한다. HW : Processor, memory, I/O devices, etc. SW : files, messages, processes, ..
- Total
- Today
- Yesterday
- 알고리즘
- binarySearch
- MFQ
- algorithm
- git
- SWExpert
- programmers
- N-Queen
- loss function
- hashtable
- 백 트래킹
- Process Scheduling
- 자료구조
- 프로그래머스
- Android
- MLQ
- 네트워크
- SRTN
- 사회망서비스
- DFS
- 프로세스 스케줄링
- hash
- Objective function
- 3-way-handshake
- 기능개발
- 농협정보시스템IT
- 우선순위큐
- java
- 4-way-handshake
- 백트래킹
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |