API(Application Programming lnterface)는 하나의 SW에서 다른 SW로 요청과 응답을 통해 데이터를 주고받기 위한 방법을 말한다.예를들어 날씨 서비스의 경우, 날씨 API를 사용하여 해당 서비스에 날씨 데이터를 요청하면 서비스는 요청에 대한
▶운영체제를 알아야 하는 이유 OS(Operating System)란 ▷ 종류
컴퓨터 부팅 과정을 먼저 그림으로 살펴보자!부트스트랩(bootstrap program) 프로그램전원을 키거나 재부팅 될 때, 가장 먼저 실행되는 프로그램보통 ROM or EPROM에 저장되는 firmware이다.시스템 모든 장치를 초기화부트스트랩 프로그램이 운영체제 커
이중 동작 모드란 OS를 보호하기 위한 기법이다!이중 동작 모드를 아래와 같이 요약해보았다.개념이중 동작 모드는 OS를 보호하기 위한 기법이다.사용자 모드와 커널 모드로 나뉜다. 하드웨어 모드 비트시스템이 사용자 코드 또는 커널 코드를 실행하는지 구별해준다.커널모드(
# ▶ 시스템 콜 - 시스템 콜이란? - OS 서비스를 사용하기 위해 커널 모드로 전환하는 방법이다. - OS의 커널 모드로 동작하는 관리자(중개자) 역할을 수행한다. - 시스템 콜은 직접 사용하기에 어려움이 있어 API를 통해 접근한다. (사용자 프로그
H/W 또는 S/W에서 어떤 사건이 발생할 때 CPU에게 알려 사건을 처리하는 매커니즘을 말한다.OS는 인터럽트 기반으로 동작한다.⭐CPU가 인터럽트되면, CPU는 하던 일을 멈추고 즉시 고정된 위치로 실행을 옮겨 인터럽트를 처리한다.H/W 인터럽트하드웨어가 발생시키는
타이머는 무한 루프나 자원을 계속 사용하는 프로세스를 방지하기 위해 사용한다.즉, OS에게 자원(CPU 등)을 돌려주지 않는 프로세스를 방지한다.지정된 시간 후에 인터럽트를 설정한다OS가 PC 값을 감소시키며 0이 될 때 인터럽트를 발생시켜 무한 루프∙자원을 계속 사용
▶ Process란? > 실행 중인 프로그램을 말한다. ① 실행 가능한 파일이 메모리에 올라가면 프로세스가 된다. ② 해당 방향으로 동적 증가 ③ 힙 영역과 스택 영역의 크기는 가변적이다. 힙 영역: 낮은 주소 -> 높은 주소 스택 영역: 높은 주소 -> 낮은 주
IPC를 공부할 때 정말 어려웠는데🤯🤯🤯🤯taegyunwoo.github 이 분이 작성하신 포스팅이 정말 많은 도움이 되었다.한 번 보고오시길😼 컴퓨터 시스템에서 프로그램은 독립적인 공간을 가진다
프로세스를 새로 생성하는 방법뿐만아니라 실행중인프로세스로부터 새로운 프로세스를 복사하는 방법도 있다.fork() 시스템 콜이란?fork() 시스템 호출은 실행 중인 프로세스를 복사하는 함수이다.이때 실행하던 프로세스는 부모 프로세스, 새로 생긴 프로세스는 자식 프로세스
쓰레드란?쓰레드는 프로세스 내에 있는 것으로 CPU 이용의 기본 단위이다.MS 워드에서 글자 잘 못 썼을 때 빨간색으로 표시되거나 자동 저장되는 기능 하나하나가 쓰레드이다.쓰레드의 구성요소쓰레드 ID프로그램 카운터레지스터 집합스택클라이언트&서버 구조에서의 쓰레드쓰레드
CPU : 명령어들을 실행하는 하드웨어Processor(처리기) : 하나 이상의 CPU를 포함하는 물리적인 칩Core : CPU의 기본 연산 단위다중 코어(Multicore): 동일한 CPU에 여러 개의 코어 포함다중 처리기(Multi-Processor): 여러 프로세
▶ 단일/다중 처리기 vs 단일/다중 프로그래밍 > 이전에 포스팅한 단일/다중 처리기 시스템과 단일/다중 프로그래밍은 다른 개념이다! 단일/다중 처리기 시스템은 CPU, 코어 개수에 따른 컴퓨터 시스템의 구성을 나타내는 것이라면, 단일/다중 프로그래밍은 프로세스가
프로그램을 실행하려면 먼저 프로그램을 메모리에 적재해야한다.CPU 직접 접근 가능, 프로그램과 데이터를 모두 보관하기에 크기가 작음RAM (random Access Memory) : 휘발성ROM (Read Only Memory) : 비 휘발성, 펌웨어(비 휘발성 저장장
DMA(Direct Memory Access)란?CPU의 개입 없이 바로 RAM으로 데이터를 전송하는 방식을 말한다.DMA 언제 사용할까?고속의 입출력 장치가 메모리 속도에 근접하는 속도로 정보를 전송할 때 DMA를 사용한다.DMA 어떤 방식으로 이루어질까?장치 제어기
개념캐시란 자주 사용하는 데이터나 값을 복사해놓는 임시 저장 장소를 말한다. (느린 저장장치에서 빠른 저장장치로 복사 -> 병목현상 해결)데이터 접근 시간이 오래 걸리는 경우나 값을 다시 계산하는 시간을 줄이고 싶은 경우 사용한다.캐시 작동 방식정보가 빠른 저장장치(캐
중요한 원칙정책과 메커니즘을 분리를 해야한다.정책과 기법정책(Policies): 무엇을 할 것인가? (장소와 시간에 따라 변경 가능)기법(Mechanism): 어떻게 할 것인가?정책과 기법(매커니즘)의 분리정책은 장소가 바뀌거나 시간의 흐름에 따라 변경될 수 있다.나중
# ▶ Microkernels - 특징 - 커널이 커져 관리가 어려워지면서 가능한 많은 기능을 커널에서 사용자 공간으로 옮겨 커널을 최소화한다. - Mach : 대학교에서 개발한 첫 번째 **Microkernels**이다. - Mac OS X 커널(**Dar
Byte order글을 읽을 때 왼쪽에서 오른쪽으로 읽는 것 처럼 컴퓨터도 데이터를 읽을 때의 규칙이 필요하다.바이트 저장 순서 규칙은 Big-endia와 Little-endian가 있다.Big-endia와 Little-endian를 서로 변환, 해석할 해석기가 필요하
Linked ListSingly Linked List (단방향(단일) 연결리스트)다음 원소의 주소를 붙여놓은 형태Doubly Linked List (양방향(이중) 연결리스트)다음 자료와 이전 자료의 주소를 붙여 놓은 형태Circular Linked List (원형 연결
코어를 두 개, 세 개로 늘려주면 진짜 성능 향상이 될까? 암달의 법칙을 통해 알아보자!
▶ CPU 스케줄링 ▷ CPU 스케줄링의 목적 멀티프로그래밍을 통해 CPU 효율을 최대로 살리기( *오버헤드를 최소화 ) 프로세스의 공평한 분배 burst 계속되는 작업을 의미한다. CPU burst CPU를 사용하는 구간 ( job size ) 집중 사
준비 큐를 아래와 같이 분리한 것을 말한다.Foreground QueueRound Robin 사용 (응답속도 중점)Backgorund QueueFCFS 사용 (처리량 중점)고정 우선순위 스케줄링 (Fixed Priority Scheduling)Foreground Que
▶ Thread 스케줄링 쓰레드는 유저 레벨과 커널 레벨로 구분한다. 시스템에서 쓰레드를 지원할 경우, 프로세스가 아닌 쓰레드를 스케줄링한다. 쓰레드에 자세히 알고 싶다면? ▷ 쓰레드 스케줄링 경쟁 범위 PCS (Process-Contention Scope) 프로
전 포스팅 《 IPC (프로세스간 통신) 》에서 임계 구역에 대해 살펴보았다. > 다시 한 번 살펴보면, 공유된 자원에 여러 프로세스/스레드가 동시에 접근하려고 하면 임계 구역 안에서 경쟁 상태가 생길 수 있다. 경쟁 상태(race condition) : 두 개
개념교착상태두 개 이상의 프로세스가 서로 상대방의 작업이 끝나기 만을 기다리고 있기 때문에, 무한 대기 상태에 빠지는 상태한정된 자원을 프로세스가 사용하려고 할 때 발생한다.프로세스는 아래와 같은 순서로만 자원을 사용할 수 있다.Request (요청)Use (사용)Re
주소 바인딩의 단계별 형태Compile Time: 해당 단계에서는 절대 주소를 미리 알기 어려움Load TimeExecution TimeDLL(Dynamic Linking Library)논리 주소: CPU에 의해 만들어지며 가상의 주소물리 주소: 저장공간에 실제로 존재