본문 바로가기

전체 글223

Troya 2023. 12. 24.
Çanakkale 2023. 12. 24.
Turkiye? 얼떨결에 가게 된 튀르키예 다녀오겠습니다. 2023. 12. 13.
CS - 데이터베이스 2 SQL 관계형 데이터 베이스 (SQL) 동일한 구조(릴레이션)의 관점에서 모든 데이터를 논리적으로 구성 선언적인 질의어를 통한 데이터 접근을 제공 응용 프로그램들은 데이터베이스 내의 레코드들의 어떠한 순서와도 무관하게 작성. 사용자는 원하는 데이터(what)만 명시하고, 어떻게 이 데이터를 찾을 것인가(how)는 명시할 필요가 없음. 관계 데이터 모델은 지금까지 제안된 데이터 모델들 중에서 가장 개념이 단순한 데이터 모델 특징 바탕이 되는 데이터 구조로서 간단한 테이블(릴레이션)을 사용 중첩된 복잡한 구조가 없음 집합 위주로 데이터를 처리 숙련되지 않은 사용자도 쉽게 이해할 수 있음 표준 데이터베이스 응용에 대해 좋은 성능을 보임 기본적인 용어 릴레이션(relation) : 2차원의 테이블(스프레드 시트.. 2023. 12. 8.
CS - 데이터베이스 1 데이터베이스(database) 데이터베이스는 조직체의 응용 시스템들이 공유해서 사용하는 운영 데이터들이 구조적으로 통합 데이터베이스의 구조는 사용되는 데이터 모델에 의해 결정. 데이터의 대규모 저장소로서, 여러 사용자에 의해 동시에 사용. 모든 데이터가 중복을 최소화하면서 통합. 데이터베이스는 운영 데이터뿐만 아니라 그 데이터에 관한 설명까지 포함 프로그램과 데이터 간의 독립성이 제공(프로그램 메모리가 아닌 개별적인 저장공간에 저장) 데이터베이스 관리 시스템(DBMS: Database Management System) 데이터베이스를 정의하고, 질의어를 지원하고, 리포트를 생성하는 등 작업을 수행하는 소프트웨어 데이터베이스 스키마 전체적인 데이터베이스 구조를 뜻하며 자주 변경되지 않음. 데이터베이스의 모든.. 2023. 12. 1.
CS - 쓰레드 풀 쓰레드 풀 컴퓨터 프로그래밍에서 쓰레드 풀은 컴퓨터 프로그램에서 실행의 동시성을 달성하기위한 소프트웨어 디자인 패턴. 프로그램이 작업을 동시에 실행할 수 있도록 여러 스레드를 미리 생성해두고 유지 관리 여러 Thread를 동시에 만들어 실행(병렬처리) 작업 처리에 사용되는 쓰레드를 제한된 개수만큼 정해 놓고 작업 큐(Queue)에 들어오는 작업들을 하나씩 쓰레드가 맡아 처리하는 것 초기화 - 쓰레드 풀을 사용하기 전에 초기화. 이 단계에서는 쓰레드 풀의 크기, 최대 쓰레드 수, 작업 큐 등의 매개변수를 설정. 작업 수신 - 쓰레드 풀은 작업을 수신하고 처리할 준비. 작업은 일반적으로 작업 큐에 추가. 작업 수행 - 쓰레드 풀에서는 미리 생성된 쓰레드들이 작업 큐를 모니터링하고 대기 중인 작업을 가져와 처.. 2023. 11. 29.
CS - 프로세스와 쓰레드 프로세스 프로세스는 메모리 상에서 실행중인 프로그램을 말하며, 쓰레드는 이 프로세스 안에서 실행되는 흐름 단위. 프로세스는 최소 하나의 쓰레드를 보유하고 있으며, 각각 별도의 주소공간을 독립적으로 할당.(code, heap, stack) 자신만의 고유 공간과 자원을 할당받아 사용 프로세스만으로 작업을 처리할때의 문제점 프로세스 생성에 큰 오버헤드가 발생. 프로세스를 생성할때 많은 시간이 소요. 프로세스 컨텍스트 스위칭의 비효율성, 오버헤드가 큼. 프로세스 사이 통신의 어려움. 비용이 비싼 IPC 사용. (또는 LPC, 공유 메모리) 쓰레드 쓰레드는 프로세스안에서 작업을 처리하는 주체 쓰레드는 자원 중에 stack 만 따로 할당받고 나머지 영역은 쓰레드끼리 서로 공유 다른 쓰레드와 공간과 자원을 공유하면서.. 2023. 11. 21.
CS - 프로세스의 생명주기-스케줄링,주-보조 교환,Context Switching 스케줄링 (Scheduling) 1) Job Scheduler : Job Queue의 프로그램들을 어떤 순서로 메모리에 올릴 것인지 결정. 이러한 과정은 프로그램이 새로 시작될 때, 메인메모리가 가득찬 경우 등의 상황에만 발생하므로 자주 일어나지 않고 어쩌다 한번(수분 ~ 수십분) 일어남. 📌 Long Term Scheduler 프로그램이 새로 시작될 때, 메인메모리가 가득찬 경우 등의 상황에만 발생하므로 자주 일어나지 않고 어쩌다 한번(수분 ~ 수십분) 일어나며, 이처럼 긴 간격으로 동작하는 스케줄러를 Long Term Scheduler라고 함. 2) CPU Scheduler : Ready Queue의 프로세스들을 어떤 순서로 서비스 할 것인지에 대한 스케줄러 모든 스케줄링 중에서 CPU 스케줄링이 가.. 2023. 11. 8.
CS - 프로세스 메모리 프로세스의 메모리 구조 1) Code 영역 실행할 프로그램의 코드가 저장. CPU는 이 영역에서 명령어를 하나씩 가져와 처리 2) Data 영역 전역변수와 정적변수가 저장 이 변수들은 프로그램이 시작될 때 할당되어 프로그램 종료 시 소멸 BSS(Block Stated Symbol) 영역 BSS 영역에는 초기화 되지 않은 전역변수가 저장. 초기화 된 전역변수는 Data 영역에 저장되어 비휘발성 메모리인 ROM에 저장되는데, 이 부분은 비용이 많이 들어 RAM에 저장될 것과 ROM에 저장될 것을 구분하기 위해 영역을 구분해 사용 3) Stack 영역 호출된 함수의 수행을 마치고 복귀할 주소 및 데이터(지역변수, 매개변수, 리턴값 등)를 임시로 저장하는 공간 이 영역은 함수 호출시 기록하고 함수의 수행이 완료.. 2023. 11. 3.
CS - 프로세스의 생명주기-프로세스 상태,대기 큐 프로그램이 저장되어 있는곳 = 보조 기억장치 프로그램이 로딩되는 곳 = 주 기억장치 프로그램을 실행해주는 주체 = 프로세스 작업을 처리해주는 주체 = 쓰레드 프로세스 상태변화 = 프로세스 생명주기 신규 프로세스가 이제 막 메인메모리에 올라온 상태 실행하는 것은 불가능합니다. 수용 동작을 거쳐야 준비단계로 진행 준비(Ready) 변수 초기화 등 기초 준비작업을 모두 끝나고 실행을 할 수 있는 상태 스케쥴러를 통해 발송(dispatch)되어야 수행상태로 변화 아래 케이스를 통해 준비상태. 신규 프로세스가 수용됨 대기 프로세스의 입출력/이벤트가 완료됨 수행 프로세스가 중단됨 수행(Running) CPU가 실제로 프로세스를 수행하고 있는 상태 선점 스케쥴링에 의해 중단되면 준비상태로 변화 입출력/이벤트가 필요하.. 2023. 10. 31.