Study/CS 16

[운영체제] Process Synchronization 1, 2

Initial Attempts to Solve Problem 두 개의 프로세스가 있다고 가정 P0, P1 프로세스들의 일반적인 구조 프로세스들은 수행의 동기화(synchronize)를 위해 몇몇 변수를 공유할 수 있다 → synchronization variable 프로그램적 해결법의 충족 조건 Mutual Exclusion (상호 배제) 프로세스 Pi가 critical section 부분을 수행 중이면 다른 모든 프로세스들은 그들의 critical section에 들어가면 안 된다 Progress (진행) 아무도 critical section에 있지 않은 상태에서 critical section에 들어가고자 하는 프로세스가 있으면 critical section에 들어가게 해주어야 한다 Bounded Wa..

Study/CS 2023.05.24

[운영체제] CPU Scheduling

Scheduling Criteria CPU utillzation (이용률) Throughput (처리량) Turnaround time (소요시간, 반환시간) Wating time (대기 시간) Response time (응답 시간) SJF (Shortest-Job-First) 각 프로세스의 다음번 CPU burst time을 가지고 스케줄링에 활용 CPU burst time이 가장 짧은 프로세스를 제일 먼저 스케줄 Two schemes : Nonpreemptive 일단 CPU를 잡으면 이번 CPU burst가 완료될 때까지 CPU를 선점 당하지 않음 Preemptive 현재 수행중인 프로세스의 남은 burst time보다 더 짧은 CPU burst time을 가지는 새로운 프로세스가 도착하면 CPU를 빼..

Study/CS 2023.05.22

[운영체제] 프로세스 관리 1, 2

프로세스 생성(Process Creation) 부모 프로세스가 자식 프로세스 생성 프로세스의 트리(계층 구조) 형성 프로세스는 자원을 필요로 함 OS로부터 받는다 부모와 공유한다 자원의 공유 부모와 자식이 모든 자원을 공유하는 모델 일부를 공유하는 모델 전혀 공유하지 않는 모델 수행(Execution) 부모와 자식은 공존하며 수행되는 모델 자식이 종료(terminate) 될 때까지 부모가 기다리는(wait) 모델 주소 공간(Adress space) 자식은 부모의 공간을 복사함(binary and OS data) 자식은 그 공간에 새로운 프로그램을 올림 UNIX ex. fork() 시스템콜이 새로운 프로세스를 생성 부모를 그대로 복사 주소 공간 할당 fork 다음에 이어지는 exec() 시스템콜을 통해 새..

Study/CS 2023.05.17

[운영체제] 프로세스 2, 3

Thread Thread의 구성 program counter register set stack space Thread가 동료 thread와 공유하는 부분(=task) code section data section OS resources 전통적인 개념의 heavyweight process 는 하나의 thread를 가지고 있는 task로 볼 수 있다. 다중 스레드로 구성된 태스크 구조에서는 하나의 서버 스레드가 blocked (waiting) 상태인 동안에도 동일한 태스크 내의 다른 스레드가 실행되어 빠른 처리를 할 수 있다. 동일한 일을 수행하는 다중 스레드가 협력하여 높은 처리율(throughput)과 성능 향상을 얻을 수 있다. 스레드를 사용하면 병렬성을 높일 수 있다. Benefits of Threa..

Study/CS 2023.05.15

[운영체제] 프로세스 1

프로세스의 개념 Process is a program in execution 프로세스의 문맥(context) CPU 수행 상태를 나타내는 H/W 문맥 H/W 문맥 Program counter 각종 register 프로세스의 주소 공간 code, data, stack 프로세스 관련 커널 자료 구조 PCB (Process Control Block) Kernel stack 프로세스의 상태 (Process State) 프로세스는 상태가 변경되며 수행된다 Running CPU를 잡고 instruction을 수행중인 상태 Ready CPU를 기다리는 상태 (메모리 등 다른 조건을 모두 만족하고) Blocked (wait, sleep) CPU를 주어도 당장 instruction을 수행할 수 없는 상태 Process ..

Study/CS 2023.05.06

[운영체제] 컴퓨터시스템의 구조 2

동기식 입출력과 비동기식 입출력 동기식 입출력 (synchronous I/O) I/O 요청 후, 입출력 작업이 완료된 후에 제어가 사용자 프로그램에 넘어감 구현 방법 1 I/O가 끝날 때까지 CPU를 낭비시킴 매시점 하나의 I/O만 일어날 수 있음 구현 방법2 I/O가 완료될 때까지 해당 프로그램에게서 CPU를 빼앗음 I/O 처리를 기다리는 줄에 그 프로그램을 줄 세움 다른 프로그램에게 CPU를 줌 비동기식 입출력 (asynchronous I/O) I/O가 시작된 후 입출력 작업이 끝나기를 기다리지 않고 제어가 사용자 프로그램에 즉시 넘어감 ⇒ 두가지 경우 모두 I/O의 완료는 인터럽트로 알려줌 인터럽트(Interrupt) 현대의 운영체제는 인터럽트에 의해 구동됨 DMA (Direct Memory Acc..

Study/CS 2023.04.30

[운영체제] 컴퓨터시스템의 구조 1

컴퓨터 시스템 H/W 구조 I/O device Input (키보드) / Output(프린트, 모니터) Mode bit 사용자가 프로그램의 잘못된 수행으로 다른 프로그램&운영체제에 피해가 가지 않도록 하기 위한 보호 장치 필요 Mode bit을 통해 H/W적으로 두 가지 모드의 operation 지원 1 사용자 모드 : 사용자 프로그램 수행 0 모니터 모드 : OS 코드 수행 보안을 해칠 수 있는 중요한 명령어는 모니터 모드에서만 수행 가능한 특권명령으로 규정 Interrupt나 Exception 발생시 H/W가 mode bit을 0으로 바꿈 사용자 프로그램에게 CPU를 넘기기 전에 mode bit을 1로 셋팅 *모니터모드 = 커널모드, 시스템 모드 Timer 타이머 정해진 시간이 흐른 뒤 OS에게 제어권..

Study/CS 2023.04.27

[운영체제] #1 운영체제 개요

운영체제 무엇인가? 운영체제란? 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층 협의의 OS (커널) OS의 핵심 부분으로 메모리에 상주하는 부분 광의의 OS 커널뿐만 아니라 각종 주변 시스템 유틸리티를 포함한 개념 운영체제의 목적 컴퓨터 시스템의 자원을 효율적으로 관리 프로세서, 기억장치, 입출력 장치 등의 효율적 관리 사용자간의 형평성있는 자원 분배 주어진 자원으로 최대한의 성능을 내도록 사용자 및 운영체제 자신의 보호 프로세스, 파일, 메세지 등을 관리 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공 OS는 동시 사용자/프로그램들이 각각 독자적 컴퓨터에서 수행되는 것 같은 환상(경)을 제공 H/W를 직접 다루는 복잡한 부분을 OS가 대행..

Study/CS 2023.04.27

[네트워크] IPv4, ICMP, 프로토콜 (2)

네트워크란 무엇인가? 네트워크란? 노드들이 데이터를 공유할 수 있게 하는 디지털 전기통신망의 하나이다. 분산되어 있는 컴퓨터를 통신망으로 연결한 것을 말한다. 네트워크에서 여러 장치들은 노드 간 연결을 사용하여 서로에게 데이터를 교환한다. *노드 : 네트워크에 속한 컴퓨터 또는 통신 장비를 뜻하는 말 인터넷이란? 문서, 그림 영상과 같은 여러가지 데이터를 공유하도록 구성된 세상에서 가장 큰 전세계를 연결하는 네트워크 흔히 www를 인터넷으로 착각하는 경우가 많은데 www는 인터넷을 통해 웹과 관련된 데이터를 공유하는 것 네트워크의 분류 크기에 따른 분류 LAN 가까운 지역을 하나로 묶은 네트워크 WAN 멀리 있는 지역으 한데 묶은 네트워크 가까운 지역끼리 묶인 LAN과 LAN을 다시 하나로 묶은 것 네트..

Study/CS 2022.10.01

[네트워크] IPv4, ICMP, 프로토콜 (1)

IPv4 프로토콜 IPv4가 하는 일 네트워크 상에서 데이터를 교환하기 위한 프로토콜 데이터가 정확하게 전달될 것을 보장하지 않는다. 중복된 패킷을 전달하거나 패킷의 순서를 잘못 전달할 가능성도 있다. 악의적으로 이용되면 DoS 공격이 된다. 데이터의 정확하고 순차적인 전달은 그보다 상위 프로토콜인 TCP에서 보장한다. IPv4 프로토콜의 구조 다른 네트워크의 특정 대상을 찾는다. ICMP 프로토콜 ICMP 프로토콜의 구조 Internet Control Message Protocol (인터넷 제어 메세지 프로토콜) 네트워크 컴퓨터 위에서 돌아가는 운영체제에서 오류 메세지를 전송 받는 데 주로 쓰인다. 프로토콜 구조의 Type과 Code를 통해 오류 메세지를 전송 받는다 특정 대상과 내가 통신이 잘 되는지..

Study/CS 2022.09.30