CPU 스케줄링 - 1 포스팅 썸네일 이미지

운영체제

CPU 스케줄링 - 1

CPU scheduling : CPU 스케줄링 - 멀티프로그래밍 기반 OS에서 사용 (1개 이상의 프로그램이 동시에 메모리에 적재 가능한 OS) - 가장 효율적으로 CPU를 사용하기 위해 (컴퓨터 시스템의 성능 향상을 위해) - 메모리에 로드된 프로세스들 중에 CPU 자원을 어떻게 할당할껀가? = ready 상태의 프로세스들중에 CPU 자원을 할당에 대한 문제 preemptive : 선점 한 프로세스가 CPU를 할당받아 실행중이라도 다른 프로세스가 현재 프로세스를 중지 시키고 CPU를 강제적으로 뺏을 수 있는 스케줄링 방식 Non-preemptive : 비선점 한 프로세스가 CPU를 할당받아 실행중이라면 다른 프로세스들이 CPU를 강제적으로 뺏을 수 없는 스케줄링 방식 - 어떻게 다음 프로세스를 선택할껀..

2021.03.24 게시됨

스레드 와 동시성 - Thread & Concurrency 포스팅 썸네일 이미지

운영체제

스레드 와 동시성 - Thread & Concurrency

Thread : 스레드 - 경량의 프로세스 - CPU 사용하는 기본 단위 - thread ID, PC(program counter), register set, stack으로 구성됨 - 멀티스레드 서버 아키텍쳐 = 서버에서 클라이언트의 요청을 받아 스레드를 만들어 서비스하고 서버는 추가 요청을 계속 listen 한다. - 멀티스레딩 장점: NonBlocking 으로 처리를 할수있다. Resource 자원을 공유가 쉽다. (프로세스의 shared-memory 나 message-passing 방식에 비해 쉽다.) Context switching 비용이 적다 (프로세스보다 적은 overhead) Scalability 확장성이 뛰어나다. - 멀티 코어 시스템에서 멀티 스레드 멀티 코어를 동시에 효율적으로 처리능력..

2021.03.23 게시됨

운영체제

프로세스 - 3

Pipe : 파이프 유닉스 시스템에서 착안되어 만들어짐. 두 프로세스간 통신을 위한 도구. 일방향성의 두개의 파이프를 이용함. (Half-Duplex - 반이중 통신) 구현의 편의상 parent-child 관계를 가짐. 네트워크에서 사용하지 않음. (네트워크에서 사용한는 것을 소켓) ordinary pipes: 일반적인 pipe named pipes: parant-child 관계를 명확히 알 경우 사용. Sockets : 소켓 통신을 위한 endpoints를 의미한다. socket(ip + port) socket(ip + port) 양쪽에 생성되는 링크 단자를 소켓이라 부른다. RPC : Remote Procedure Call 이름 대로 보면 원격 프로시저 호출이다. 원격지 컴퓨터의 프로시저를 호출하여 ..

2021.03.18 게시됨

프로세스 - 2 포스팅 썸네일 이미지

운영체제

프로세스 - 2

Interprocess Communication : IPC : 프로세스간 통신 문제: 프로세스는 서로 독립적이지 않고 서로 협력해야하는 상황에서 어떤식으로 처리해야 할까. IPC 매커니즘: 프로세스간 데이터를 교환하는 과정 (send data - receive data) IPC의 두가지 모델: shared memory (공유 메모리), message passing (OS가 처리) ※ Producer-Consumer Problem : 생산자-소비자 문제 - 생산자는 정보를 생산, 소비자는 정보를 소비 [ compiler -> assemly -> assembler ], [ web server -> HTML -> browser ] Shared-Memory System 생산자와 소비자가 동시(concurrenc..

2021.03.10 게시됨

프로세스 - 1 포스팅 썸네일 이미지

운영체제

프로세스 - 1

Process : 프로세스 실행중인 프로그램, OS의 작업의 단위 CPU자원, 메모리, 파일, I/O device 가 필요하다 - Text section: 실행 코드 - Data section: 전역 변수 - Heap section: 동적 할당된 데이터 - Stack section: 함수 호출시 임시적인 데이터 ( return 주소, 지역변수 ) Process life cycle : 프로세스 상태 - New : 프로세스가 생성된 상태 - Running : 프로세스가 실행된 상태 - Waiting : 프로세스가 기다리는 상태 ( cpu자원 할당 전, I/O 작업 대기 ) - Ready : CPU 점유 전 대기상태 - Terminated : 모든 실행 종료 상태 PCB (Process Control Bloc..

2021.03.09 게시됨

운영체제 - 2 포스팅 썸네일 이미지

운영체제

운영체제 - 2

운영체제의 정의 운영체제는 범용적으로 정의 내릴 수 없다. 컴퓨터에서 항상 동작하는 하나의 프로그램이며 이것을 kernel이라고 부른다. 현대의 컴퓨터 시스템 신경망 컴퓨터, 네트워크 컴퓨터, 양자 컴퓨터, 지식 베이스 시스템(지적 대화, 추론)... 전통적인 컴퓨터 시스템 현재 우리가 사용하는 컴퓨터 시스템 ( 일반적인 컴퓨터, 노트북... ) CPU를 가졌고 여러 device controllers이 bus를 통해 연결된 형태 bootstrap program 전원을 켜거나 재부팅을 할 때 적재되는 프로그램이다. 일반적으로 펌웨어라고 알려진 ROM 또는 EEPROM에 저장되어 있다. 이 프로그램은 시스템을 모든 측면에서 초기화하며, 운영 체제 kernel을 적재하고 실행시킨다. Interrupts I/O..

2021.03.08 게시됨

컴퓨터와 운영체제 - 1 포스팅 썸네일 이미지

운영체제

컴퓨터와 운영체제 - 1

정보의 최소단위 : Bit 정보의 처리 : 정보의 상태 변환 ( 0 -> 1, 1-> 0 ) 범용성 : universality NOT, AND, OR 게이트만으로 모든 계산을 할 수 있다. NAND 게이트만으로 모든 계산을 할 수 있다. 계산가능성 : computability Turing-computable : 튜링 머신으로 계산가능한 것. 정지 문제 : Halting Problem : 튜링 머신으로 풀 수 없는 문제. 컴퓨터 : computer 정보를 처리하는 기계 앨런 튜링 - 1936년 컴퓨터의 원형을 논문으로 발표 폰 노이만 - 실제 동작하는 컴퓨터를 만듬 ( ISA: Instruction Set Architecture ) - stored-program 을 처음 설계 ( CPU RAM ) 프로그램..

2021.03.08 게시됨