CS 21

동기 / 비동기

동기식 처리 모델(Synchronous Processing Model)  직렬적인 처리 방식 - 순차적으로 작업을 수행하고, 해당 작업이 수행중이면 다음 작업은 대기ex) 1000개의 작업 중 999개가 처리되지 않은 상태에서 1000번째 작업은 앞의 대기 작업이 모두 완료되고 실행된다.  비동기식 처리 모델(Asynchronous Processing Model or Non-Blocking Processing Model) 병렬적인 처리 방식 - 작업이 들어오면 계속 작업을 할당 받고 각각 처리ex) A,B,C 작업이 동시에 처리요청을 보냄 결과 :A,B,CA,C,B B,A,CB,C,AC,A,BC,B,A 위와 같이 먼저 처리되는 순서대로 처리된다.

CS 2024.06.14

운영체제 - 정리

1. 메모리 계층 구조 레지스터 -> 캐시 메모리 -> RAM -> 하드디스크 (레지스터에 가까울 수록 속도빠름)2. 시스템 콜OS의 커널 모드에 접근해 프로세스에서 호출 하는 함수.프로세스 제어, 파일, 장치 조작을 수행3. 프로세스실행 중인 프로그램. 하나 이상의 스레드를 가짐.PCB에 프로세스의 현 상태, PID, 부모PID 등을 저장.프로세스마다 독립된 메모리 공간을 가짐 ( 스택, 힙, 데이터, 코드 )스택: 지역 함수, 함수의 매개변수, 반환 주소 값 저장.힙 : 동적 메모리 할당데이터 : 전역, 정적 변수, 배열, 구조체 저장. 초기화 된 데이터는 데이터영역, 초기화X데이터는 BSS에 저장.코드 : 기계어프로세스의 상태생성(new) : 프로세스가 PCB를 가지고 있지만 OS의 승인을 받기 전..

CS/운영체제 2024.06.12

운영체제 - 가상 메모리, 요구 페이징, 스레싱, 캐시 메모리

가상메모리?프로세스의 일부만 메모리에 로드하고 나머지는 디스크에 둔 상태로 실행하는 방식이다.나머지 부분을 디스크에 두기 때문에 더 많은 프로세스를 메모리에 로드할 수 있다. 장점 메모리 크기에 대한 제약을 덜 받는다.CPU 이용률과 처리율을 높일 수 있다. -> 동시에 많은 프로그램이 실행하므로필요한 영역만 로드하여 스와핑 횟수를 줄여 프로그램 실행 속도를 높일 수 있다.요구 페이징?프로세스에서 필요한 페이지만 메모리에 로드하는 방식이다.필요한 페이지를 페이지 테이블과 매핑하여 물리 메모리에 로드하고 나머지는 디스크에 저장한다.프로그램 실행하다가 물리 메모리에 필요한 페이지가 없을 때 이를 페이지 폴트라고 한다.페이지 폴트 발생 시 디스크에서 필요한 페이지를 스왑 인 한다. 페이지 테이블은 페이지에 해..

CS/운영체제 2024.06.12

OLAP / OLTP

OLTP와 OLAP는 데이터베이스 시스템의 두 가지 주요 유형으로, 각각 다른 목적과 최적화 기법을 가지고 있다. OLTP (실시간성)주로 거래 지향적인 작업에 최적화되어 있음.실시간으로 사용자의 요청을 처리. -> ACID 속성을 유지하는 것이 중요데이터의 무결성과 일관성을 유지하는 데 중점을 둔다.주로 정규화된 스키마를 사용하여 데이터 중복 최소화, 빠른 거래 처리가 목적높은 처리량과 짧은 응답 시간을 요구ex) 쇼핑몰 주문OLAP (배치성)시스템은 분석과 질의 응답에 최적화되어 있음. 대량의 데이터를 분석하고 복잡한 질의에 대한 응답 시간을 최적화. 비정규화된 스키마 사용도 허용. -> 데이터 중복을 허용함으로써 질의 처리 속도를 향상대용량의 데이터를 효율적으로 스캔하고, 집계하며, 사용자에게 분석..

CS 2024.06.12

운영체제 - 논리/물리 메모리

CPU가 프로세스를 처리할 때 보는 주소 값(논리 주소)과 실제 메모리(물리 주소)의 주소 값은 다르다. 논리 메모리 영역(가상 메모리 영역) - 프로세스가 보는 메모리 영역 물리 메모리 영역 - 실제 메모리 영역(RAM)  메모리 관리 장치(MMU, Memory management Unit) : 논리 주소를 물리주소로 변경 시키는 역할을 하는 하드웨어 장치이다. CPU에 위치하며 CPU에서 메모리에 접근하기 전에 MMU를 거쳐 논리 주소에 해당하는 물리 주소를 얻는다.MMU는 보호해야 하는 메모리 영역에 대한 접근을 제한해 메모리를 보호하는 역할을 한다.연속 메모리 할당 멀티 프로세스 환경에서 여러 프로세스를 메모리에 연속적으로 로드하는 방법. 고정 분할 방식과 가변 분할 방식이 있다. 고정 분할 방식..

CS/운영체제 2024.06.12

운영체제 - 스케줄링

스케줄링의 단계?장기 스케줄링 : 준비 큐에 어떤 프로세스를 넣을지 결정하여 메모리에 올라가는 프로세스 수를 조절한다. 잡 스케줄링, 승인 스케줄링이라고도 한다. 현대 운영체제에서는 시분할 시스템을 사용하기 때문에 대부분 사용하지 않음.중기 스케줄링 : 메모리에 로드된 프로세스 수를 동적으로 조절한다. 많이 로드되면 스왑 아웃해서 일부 프로세스를 통째로 저장한다. 아웃된 프로세스는 중단 상태(suspended)가 된다. 준비 상태에서 스왑아웃 - '중단된 준비 상태', 대기 상태에서 스왑 아웃 - '중단된 대기 상태'단기 스케줄링 : 준비 큐에 있는 대기 상태 프로세스 중 어떤 프로세스를 다음 실행할지 알고리즘으로 결정한다. 즉, 어떤 프로세스를 디스패치할지 결정. CPU 스케줄링이라고도 한다.시분할 시..

CS/운영체제 2024.06.12

운영체제 - 스레드 안전, IPC, 좀비 프로세스

스레드 안전?멀티 스레드 환경에서 하나의 변수, 함수, 객체에 스레드 여러개가 동시에 접근해도 문제가 없음을 의미. 안전하지 않은 경우?ex) value++;위 코드는 value 변수의 값을 메모리에서 CPU 레지스터로 로드 -> 연산 처리 -> 연산 결과를 메모리에 작성하는 과정을 거치게 되는데 만약 2개이상의 스레드가 해당 코드에 접근하면 잘못된 결과를 초래할 수 있다. 스레드 2개가 각각 value값이 0일때 접근하면 1을 메모리에 저장하며 종료되겠지만,스레드 1이 먼저 value값에 1을 저장한 후 스레드 2가 접근할 시 value값은 2가된다. 이전 글에 포스트한 우유문제와 비슷한 현상이다. 스레드 안전을 위한 조건상호배제(mutual exclusive) : 공유 자원에 접근해야 할 때 뮤텍스나..

CS/운영체제 2024.06.12

운영체제 - 프로세스 동기화(경쟁 상태, 교착 상태)

경쟁상태?여러 프로세스 또는 스레드에서 자원에 접근하는 순서에 따라 결과 값이 달라질 수 있다.이러한 공유 자원에 동시에 접근해 경쟁하는 상태를 경쟁상태라고 한다.ex) 우유 문제1. A가 냉장고를 열어 우유 없는 것을 확인.2. A가 우유를 사러 마트에 감.3. A가 돌아오기 전 B가 냉장고를 열어 우유 없는 것을 확인.4. B가 우유를 사러 마트에 감.목표 : 냉장고에 우유 1개결과 : 냉장고에 우유 2개 위와 같은 문제를 해결하려면 프로세스 동기화가 이루어져야 한다. 임계영역?공유 자원에 접근할 수 있고 접근 순서에 따라 결과가 달라지는 코드 영역을 임계 영역이라 한다. 임계 영역에 동시 접근할 수 없도록 하는 3가지 조건상호배제 기법(mutual exclusive) : 어떤 프로세스가 임계영역을 ..

CS/운영체제 2024.06.12

운영체제3 - 프로세스 상태도, 멀티 프로세스/스레드

프로세스 상태도모든 프로세스는 CPU에 의해 생성되고 소멸하는 과정을 거친다.이 과정에서 프로세스는 아래 5가지 상태로 존재한다.생성(new) : 프로세스가 PCB를 가지고 있지만 OS로부터 승인(admit) 받기 전준비(ready) : OS로부터 승인 받은 후 준비 큐에서 CPU할당 기다림.실행(running) : 프로세스가 CPU를 할당 받아 실행.대기(waiting) : 프로세스가 입출력이나 이벤트 발생을 기다려야 해서 CPU사용을 멈추고 기다림.종료(terminated) : 프로세스 종료상태 변화생성 -> 준비 : 생성 상태의 프로세스가 OS의 승인을 받아 준비 큐(ready queue)에 추가됨준비 -> 실행 : 준비 큐에 있는 프로세스 중 우선순위가 높은 프로세스가 디스패치(dispatch)되..

CS/운영체제 2024.06.09

운영체제2 - 프로세스, 스레드, PCB

프로세스?컴퓨터에서 실행 중인 하나의 프로그램.OS로부터 독립된 메모리 영역을 할당 받으며 다른 프로세스의 메모리 영역에 접근할 수 없다.스택 : 지역 변수, 함수의 매개변수, 반환되는 주소 값 등이 저장되는 영역. 영역 크기는 컴파일 때 결정된다.힙 : 사용자에 의해 동적 메모리 할당이 일어나는 영역이다. C 언어에서 malloc()으로 할당되는 영역. 영역 크기는 런타임때 결정된다. 데이터 : 전역 변수, 정적 변수, 배열, 구조체 등이 저장. 세부적으로 BSS(Block stated Symbol) 영역과 데이터 영역으로 다시 나눌 수 있다. BSS영역은 초기화하지 않은변수. 데이터 영역은 초기화한 변수를 저장.코드 : 실행될 코드가 기계어로 컴파일되어 저장되는 영역. text영역이라고도 한다.스택 ..

CS/운영체제 2024.06.09