CS 36

[OS] 데드락

기초정의: 일련의 프로레스( or 스레드)들이 서로가 가진 자원을 기다리며 block되어 더 이상 진행이 될 수 없는 상태 데드락 4가지 발생 조건아래 4가지 조건이 모두 만족해야만 데드락 발생Mutual Exclusion(상호 배제): 매 순간 하나의 프로세스만이 자원을 사용 가능Hold & Wait(보유 대기): 한 스레드가 자원을 점유(hold)하고 있는 상황에서, 다른 자원을 얻기 위해 대기(wait)를 하고 있는 상황No Preemption(비선점): 프로세스는 OS에 의해 강제로 자원을 빼앗기지 않는다.Circular wait(순환 대기): 자원을 기다리는 프로세스 간에 사이클이 형성되어야 한다. RAG데드락을 시각적으로 더 잘 이해하기 위해서 관계를 그래프로 표현해보자!Resource-All..

CS/운영체제 2024.09.02

[OS] 프로세스 동기화(세마포어와 뮤텍스)

배경공유 데이터에 동시에 접근할 때 데이터 일관성에 대한 문제가 발생할 수 있다.멀티 스레드: 공유 공간멀티 프로세스: 공유 메모리다음 C 코드는 pthread 라이브러리를 이용하여 두 개의 스레드를 생성하고, 각 스레드에서 전역 변수 sum에 10,000씩을 더하는 작업을 수행한다. 이론적으로 두 스레드의 작업이 완료된 후 sum의 값은 20,000이 되어야 하지만, 실제로는 이 값이 다르게 나오는 경우가 있다.경쟁 상태(Race Condition)코드가 예상과 다른 결과를 출력하는 주된 이유는 `sum` 변수에 대한 동시 접근 때문이다. 각 스레드가 `sum++` 연산을 수행할 때, 이 연산은 사실상 세 부분으로 나뉘어 실행된다:`sum` 변수의 현재 값을 읽는다.값을 1 증가시킨다.증가된 값을 다시..

CS/운영체제 2024.09.02

[OS] CPU 스케줄링

프로세스 스케줄링ready 상태에 있는 프로세스들이 많음 -> 큐 시스템을 이용해서 관리큐 시스템에 PCB가 더블 링크 리스트 형태로 저장되어 있음   스케줄러일반적으로 스케줄러라고 하면, 단기 스케줄러를 의미장기(long-term) 스케줄러: 작업(job) 스케줄러라고도 불리며, 어떤 프로세스를 ready 큐에 삽입할지 결정하는 프로세스 생성 상태에 관여하는 스케줄러중기(medium-term) 스케줄러: 너무 많은 프로세스를 메모리에 할당해서 시스템 성능이 저하되는 경우에, 메모리에 적제된 processd의 수를 조절하기 위한 스케줄러. 주로 swapping을 통해 문제를 해결단기(short-term) 스케줄러: CPU 스케줄러라고도 불리며, ready 상태의 프로세스중 running 상태로 변경할 프..

CS/운영체제 2024.09.02

[OS] 스레드

배경지금까지는 프로세스가 싱글 스레드에서만 실행된다고 가정하고 그 처리 과정에 대해서 배웠음하지만 프로세스는 여러개의 스레드를 가질 수 있음  프로세스 vs 스레드프로세스정의: OS로부터 독립적인 메모리 공간(코드, 데이터, 스택, 힙)을 할당받은 작업의 단위특징각 프로세스간 '기본적으로' 메모리 영역을 공유 하지 않음만약 접근하고 싶다면 IPC를 사용해야함 스레드정의: 프로세스 내에서 실행되는 흐름의 단위특징: 스레드들 간 코드, 데이터, 힙 영역을 공유하고, 스택 영역만이 스레드별로 할당된다.각 프로세스들은 최소 한개 이상의 스레드를 가지고 ( 이 스레드를 메인 스레드라고 함 )프로세스는 여러 개의 스레드를 가질 수 있다.  멀티 프로세스 vs 멀티 스레드프로그램을 구현할때 여러가지 이유로 하나의 작..

CS/운영체제 2024.09.02

[OS] 프로세스간 통신(IPC)

배경프로세스 종류독립적(independent): 아무런 데이터를 공유하지 않는 프로세스협력적(cooperating): 다른 프로세스에게 영향을 주거나 or 받는 프로세스즉, 데이터를 공유하고 있는 상황이럴때 IPC(Inter-Process Communication)가 필요 IPC정의: 협력적 프로세스간의 데이터를 교환하는 방법종류: 2가지 모델이 존재공유 메모리(shared memory)메세지 패싱(message passing)공유 메모리메세지 패싱정의:- 협력 프로세스 간 공유되는 메모리 공간을 통해 데이터를 교환하는 방식이다.- 협력 프로세스들은 해당 공간에 직접 접근하여 필요한 데이터를 읽고 쓰기가 가능하다정의:- 협력 프로세스들이 OS(커널)을 통해 데이터를 교환하는 방식이다.- 협력 프로세스들은..

CS/운영체제 2024.09.02

[OS] 프로세스 구조, PCB와 Context Switching

개념프로세스 정의: 현재 실행 중인 프로그램프로그램은 저장장치에 있는 단순 텍스트 파일을 의미 프로세스 구조프로세는 메모리에서 다음과 같은 형태로 존재한다.헤더 + 코드 + 데이터 3종류  Header: 프로그램 메타 정보 ( 파일 크기 .. )code(=text): 프로그램 코드(명령어)data: 전역 변수, static 변수가 저장되는 공간stack: 각 서브루틴(함수)의 파라미터, 지역변수, 리턴주소heap: 런타임 시간에 동적으로 할당되는 데이터들 p.s) 가장 처음 스택에 push되는 서브루틴은 main     프로세스 상태 new: 프로세스가 새로 만들어진 상태ready: cpu를 할당 받기 위해 기다리는 상태running: cpu를 할당받아 실행중인 상태waitting: 이벤트(인터럽트)를 ..

CS/운영체제 2024.09.02

[OS] 시스템콜과 I/O인터럽트

OS 구성요소시스템콜과 시스템 프로그램은 OS의 2가지 핵심적인 구성 요소 시스템콜 탄생 배경OS의 목적은 유저가 컴퓨터 자원(하드웨어)를 효율적으로 사용할 수 있도록 도와주는 것해당 목적을 위해 유저 프로그램은 자원(하드웨아)을 사용하고 싶을때 반드시 OS(=Kernels)에 요청을 해야함 (유저/하드웨어 분리)따라서, OS에서 유저에게 자원들을 사용할 수 있도록 해주는 인터페이스(함수)를 구현해당 인터페이스를 시스템 콜이라고 함  시스템콜 개념정의: 사용자(프로세스)가 컴퓨터 자원(하드웨어)의 기능을 사용할 수 있도록 해주는 API특징: 시스템콜을 주로 고급 프로그래밍 언어(C, C++)로 작성되며 때때로 어셈블리 언어를 사용 파라미터OS의 서비스를 사용하기 위해 필요한 정보를 파라미터로 전달을 해야..

CS/운영체제 2024.09.02

[네트워크] DNS와 웹 통신 흐름

기초주소창에 url을 입력했을때 통신의 흐름에 대해 알아보는 것 IP 주소 vs Domain NameIP주소: 네트워크에서 컴퓨터 장치를 식별하기 위해 사용하는 번호 ( 128.0.0.1 )Domain Name: IP 주소를 문자로 표현한 주소 ( naver.com ) 웹 통신 흐름 1. 사용자가 웹 브라우저를 통해 URL을 입력한다. 2. 입력된 URL 중 도메인 네임을 DNS 서버에서 검색한다. 3. DNS 서버에서 해당 도메인 네임에 해당하는 IP 주소를 찾아 사용자가 입력한 URL 정보와 함께 전달한다. 4. 웹 페이지 URL 정보와 전달받은 IP 주소를 이용해 HTTP 요청(= HTTP Request) 메시지를 생성한다. 5. 요청은 TCP를 통해 서버로 전송된다. 6. 서버는 클라이언트의 요청..

CS/네트워크 2024.08.26

[OS] 운영체제란

운영 체제란?정의컴퓨터 하드웨어와 시스템 자원을 관리하며, 응용 프로그램과 하드웨어 간의 인터페이스 역할을 하는 시스템 소프트웨어이다.이를 통해 다른 응용 프로그램이 원활히 작동할 수 있는 환경을 제공하며, 사용자가 컴퓨터 자원을 효율적으로 사용할 수 있도록 돕는다.구조운영 체제는 크게 커널과 인터페이스 두 부분으로 나뉜다.인터페이스: 사용자와 상호작용하는 부분이다.결과를 화면에 표시하거나 사용자 입력을 받아 처리하는 기능을 담당한다.커널: 운영 체제의 핵심 기능을 수행하는 부분이다.프로세스 관리, 메모리 관리, 저장장치 관리 등 하드웨어 자원 관리와 응용 프로그램의 요청을 처리한다. 커널시스템 호출(Call): 자원에 대한 직접 접근을 차단하고, 자원 사용을 위해 응용 프로그램이 커널에 요청할 수 있는..

CS/운영체제 2024.08.19

실습2-2. 텍스트 정보 추출 모델 API 생성

배경이전 연구에서 문자 데이터의 특정 정보를 효율적으로 추출하는 방법에 대해 탐구하였습니다.이 과정에서 다양한 기계 학습 및 자연어 처리 모델 중 KoBERT 모델이 한국어 텍스트에 대해 우수한 성능을 보임을 확인했습니다.https://chocochip125.tistory.com/220 텍스트 정보 추출 (with. 개체명 인식(NER))보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 입력하세요.chocochip125.tistory.com이에 본 프로젝트는 학습된 KoBERT 모델을 활용하여 문자 데이터로부터 필요한 도메인 정보를 식별하고 추출하는 API를 구현하는 것을 목표로 하였습니다. 구현 과정모델 및 토크나이저 로드: 학습된 KoBERT 모델과 토크나이저를 메모리에 로드하여 요청 처리를 준비입..

CS/NLP 2024.03.27