일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 에러핸들링
- 우아한레디스
- 스프링 입문
- TCP/IP
- Window-Via-c/c++
- Spring
- 스프링 핵심 원리
- 운영체제
- Operating System
- 10026번
- HTTP
- 우아한 테크 세미나
- 윤성우 저자
- 열혈 TCP/IP 소켓 프로그래밍
- C++
- 토마토
- 김영한
- C#
- Operating System.
- 제프리리처
- 2475번
- BOJ
- inflearn
- FIFO paging
- 열혈 tcp/ip 프로그래밍
- OS
- n타일링2
- Four Squares
- redis
- 이펙티브코틀린
- Today
- Total
목록Operating System (11)
나의 브을로오그으

프로세스 동기화 - Process Synchronization * cf. Thread synchronization - Processes * Independent vs Cooperating * Cooperating process: one that can affect or be affected by other processes executed in the system * 프로세스간 통신: 전자우편, 파일 전송 * 프로세스간 자원 공유: 메모리 상의 자료들, 데이터베이스 등 * 명절 기차표 예약, 대학 온라인 수강신청, 실시간 주식거래 - Process Synchronization * Concurrent access to shared data may result in data inconsistency - Ex..

- Thread Concurrent vs Simultaneous : Concurrent는 굉장히 빠른 속도로 여러개의 쓰레드를 일정하게 실행함으로써 동시에 실행되는 것처럼 느껴지는것. Simultaneous는 진짜 동시에 실행되는 것. 해당 내용에서는 1 개의 CPU에서 동작하는것으로 가정하기 때문에 Concurrent이다. Thread vs Process - 한 프로세스에는 기본 1개의 쓰레드 * 단일 쓰레드 (single thread) 프로그램 - 한 프로세스에 여러 개의 쓰레드 * 다중 쓰레드 (multi-thread) 프로그램 - 쓰레드 구조 * 프로세스의 메모리 공간 공유 (code, data) * 프로세스의 자원 공유 (file, vo, ...) * 비공유 : 개별적인 PC, SP, regis..

Multilevel Queue Scheduling - Process groups * System processes * Interactive processes * Interactive editing processes * Batch processes * Student processes (프로세스마다 더 중요한 프로세스들(시스템 프로세스)이 있는데 Queue를 1개를 둔다면 다른 프로세스들이 하나의 Queue에 들어가는게 조금 않맞다. 따라서 프로세스 마다 들어가는 Queue 가 다르도록 해야 조금 더 중요한 프로세스들 부터 CPU 서비스를 받을 수 있도록) - Single ready queue -> Several separate queues * 각각의 Queue에 절대적 우선순위 존재 * 또는 CPU tim..

Shortest-Job-First - Example: AWT = (0 + 3 + 9 + 16) / 4 = 7msec * cf. 10.25 msec(FCFS) - Provably optimal (* 증명되어진 최적화 : 대기시간을 줄이는 방법으로써는 가장 최적화되어있다. 그러면 가장 베스트 방법이라는 건데 무조건 이걸 쓰면 될까?? 아쉽지만 밑에 말 처럼 비현실적인 방법이다. * 실제로는 Process가 실제 CPU Burst Time이 얼마인지 알 수 없다. 따라서 현실적인 방법이 아닌 이상적인 방법이다. 만약 이 방법을 적용하고 싶다면 CPU Burst Time을 예측 해서 해야한다. * 이런게 가능하려면 overhead가 적어야 한다. 과거의 작업 시간을 참고해서 예측이 가능하니까...) - Not ..

Context Switching(문맥전환) - Scheduler - Dispatcher (스케줄러가 선택한 process를 실행하도록, PCB에 저장된 process state, base, limit reg, pc, sp 등의 값을 현재 Processor의 SP, PC MMU의 레지스터 값 등의 context를 restore(복원)하거나 store(저장)하는 일을 Dispatcher가 함. Dispatcher는 OS내부 Process Management안에 있음.) (당연히 overhead가 있음. 부하가 있다는 말임. 자주 switching하는 작업 자체가 부하가 걸리는 작업임.) - Context switching overhead (그래서 overhead가 발생 할 수 있기에, OS설계 시 low l..

프로그램 vs 프로세스 (program vs process) - process, task, job ... - program in execution : (text + data + stack) area, pc, sp, registers, ... - 무덤 속 프로그램, 살아 움직이는 프로세스 프로세스 상태 - new, ready, running, waiting, terminated - 프로세스 상태 천이도 (process state transition diagram) - 상태 천이는 언제 발생? Process Control Block (PCB) - Task Control Block (TCB) - 프로세스에 대한 모든 정보 - process state (running, ready, waiting, termina..

CPU 보호 - 한 사용자가 실수 또는 고의로 CPU 시간 독점 * 예: while (n = 1) ... : 무한루프 * 다른 사용자의 프로그램 실행 불가 (이렇게 코드가 동작하면 무한루프를 돌기 때문에 하나의 프로세스가 CPU를 독점함) - 해결법 * Timer를 두어 일정 시간 경과 시 타이머 인터럽트 * 인터럽트 > 운영체제 > 다른 프로그램으로 강제 전환 (타이머를 설정해서 (가령 100ms) 이 시간을 초과하면 인터럽트를 발생시키고, CPU는 곧바로 ISR(Interrupt Service Routine)을 실행하고, 현재 유저 프로세스를 종료하고, 다음 유저 프로그램을 실행 할 수 있도록 함.) 정리 다중 프로그램 시스템 혹은 다중 유저 시스템에서 3가지 보호, 입출력장치 보호, 메모리 보호, ..

이중모드(dual mode) - 한 컴퓨터를 여러 사람이 동시에 사용하는 환경 * 또는 한 사람이 여러 개의 프로그램을 동시에 사용, 한사람의 실수가 프로그램 전체에 영향을 줌 STOP, HALT, RESET 등 - 사용자 프로그램은 STOP 등 치명적 명령 사용 불가하게! * 사용자(user)모드 vs 관리자(supervisor)모드 * 이중 모드(dual mode) * 관리자 모드 = 시스템 모드 = 모니터 모드 = 특권 모드 = 커널 모드 * Supervisor, System, Monitor, Privileged, Kernel - 특권 명령 (privileged Instructions) * STOP, HALT, RESET, SET_TIMER, SET_HW ... - 레지스터에 모드를 나타내는 플래그..

다중 프로세서 시스템 (MultiProcessor System) - 병렬 시스템(parallel system) - 강한결합 시스템 (tightly-coupled system) - 장점 : Performance, cost, reliability (cpu를 여러개로 처리하기 때문에 성능 향상을 기대 할 수 있고, 일반적으로 엄청나게 비싼 cpu 한개보다는 그것보다 조금 저렴한 cpu 여러개를 사용하는게 비용적으로나 성능적으로 큰 차이가 없으므로 비용적으로 유리하다, cpu가 만약 고장나면, 단일 CPU의 경우 올 스탑 되지만, 다중 프로세서를 사용하면 하나가 고장나더라도 나머지가 정상적으로 동작하므로 신뢰성이 올라간다.) - 다중 프로세서 운영체제(Multiprocessor OS) (Linux OS도 다중 ..

컴퓨터 역사 : 1940년대 말~ - 하드웨어 발전 vs 운영체제 기술 발전 No OS - OS가 없던 시절 computer operator라는 직종의 사람들이 직접 컴퓨터를 관리하고, 프로그램을 실행시켰음. Batch Processing System (일괄처리) - resident monitor (최초의 os) - 이후에 H/W가 발전하면서 메모리의 크기가 커지고, 운영체제도 발전하기 시작했다. - 어떤 User 프로그램이 CPU -> I/O -> CPU -> I/O 작업을 교대로 할 때, I/O가 동작 하는 동안에 CPU는 아무일도 안하기 때문에 비효율 적이다. - 그래서 이렇게 하자. 프로그램을 여러개 올리자. 프로그램 1, 프로그램 2, 프로그램 3... 즉, 프로그램 1이 CPU 동작 후 I/O..