。゚(*´□`)゚。

코딩의 즐거움과 도전, 그리고 일상의 소소한 순간들이 어우러진 블로그

분류 전체보기 397

스케줄링

스케줄링의 목적 멀티 프로세스 환경에서 모든 프로세스를 공평하게 실행하는 것 장기 스케줄링 준비 큐에 어떤 프로세스를 넣을지 결정해 메모리에 올라가는 프로세스 수를 조절한다. 요즘 사용 x 중기 스케줄링 메모리에 로드된 프로세스 수를 동적으로 조절, 메모리에 프로세스가 많이 로드되면 스왑 아웃해서 일부 프로세스를 통째로 저장하고, 중단 상태가 된다. 중단 상태는 준비 상태에서 스왑아웃, 대기 상태에서 스왑아웃된 상태로 구분된다. 단기 스케줄링 준비 큐에 있는 대기 상태 프로세스 중 어떤 프로세스를 다음으로 실행할지 스케줄링 알고리즘으로 결정. 즉 어떤 프로세스를 디스패치할지 결정하는데 이를 CPU 스케줄링이라고도 한다. *스왑 아웃: 메모리 공간보다 넘치게 프로세스가 로드되는 경우 중기 스케줄러가 이벤트..

CS 2023.11.23

프로세스

프로세스, 컴퓨터에서 실행 중인 하나인 프로그램 OS는 프로그램을 실행하면서 디스크에 저장돈 데이터를 메모리로 로드한다. 프로세스는 OS로부터 독립된 메모리 영역을 할당받으며, 다른 프로세스의 메모리 영역에 접근할 수 없다. 프로세스의 메모리 영역 구조 높은 주소 값 스택 지역변수, 함수의 매개변수 빈 메모리 공간 힙 사용자 동적 할당 데이터 전역변수, 정적변수 낮은 주소 값 코드 실행할 코드(기계어) *스택: LIFO 후입선출 방식으로 높은 주소 값에서 낮은 주소 값으로 메모리가 할당됨 *힙: FIFO 선입선출 방식으로 낮은 주소 값에서 높은 주소 값 순서로 메모리 할당됨 * 스택과 힙은 동적으로 메모리 할당이 가능해 두 영역 사이에 빈 메모리 공간이 존재한다. 메모리 영역을 공유하기 때문에 서로의 영..

CS 2023.11.23

커널

커널은 OS의 핵심 요소로, 컴퓨터 하드웨어와 프로세스의 보안, 자원관리, 하드웨어 추상화등의 역할을 수행한다. 자원관리를 위해 CPU 스케줄링, 메모리 관리, 입출력 관리, 파일 시스템 관리 등을 담당한다. 응용프로그램 커널 CPU 메모리 외부 기기 운영체제는 커널에서 관리하는 중요 자원에 사용자가 쉽게 접근하지 못하도록 커널모드와 사용자 모드로 모드를 나눈다. 커널 모드: 하드웨어에 직접 접근해 메모리, CPU와 같은 자원을 사용할 수 있다. 사용자 모드: 커널 모드의 자원에 접근할 수 없게 제한을 둔다. 시스템 콜: 사용자 모드에서 커널 모드에 접근해 필요한 기능을 수행할 수 있게 하는 시스템 함수. => 커널은 시스템 콜로 받은 요청을 처리한 후 다시 시스템 콜로 결과 값을 반환한다. => 프로세..

CS 2023.11.23

운영체제, CPU, 메모리

운영체제란, 하드웨어 위에 설치되어 하드웨어 계층과 소프트 웨어 계층을 연결하며, 컴퓨터 시스템의 자원을 관리하고, 사용자가 컴퓨터를 사용할 수 있는 환경을 제공한다. 또한 사용자와 컴퓨터 간 인터페이스를 제공해 사용자가 컴퓨터를 편리하게 사용할 수 있는 환경을 제공한다. CPU (중앙 처리 장치) (=프로세서) 컴퓨터에서 프로그램을 실행하는 데 필요한 연산을 처리하고 수행 메모리, 데이터를 저장하기 위한 기억장치 주 기억장치(휘발성) RAM 보조 기억장치(비휘발성) SSD, HDD 메모리는 CPU에서 빨리 접근할 수 있도록 다음과 같이 계층 구조로 나뉜다. 레지스터(CPU) CPU가 사용자 요청을 처리하는 데 필요한 데이터를 임시로 저장 속도 빠름 ㅣ ㅣ 속도 느림 캐시(CPU) CPU와 RAM의 속도..

CS 2023.11.22

NC7기 프로젝트 - Bleu Auction 을 마치며

# 주제선정이유 # 준비 과정 # 맡은 기능 # 프로젝트를 마치며 https://youtu.be/tTGAhGR9OX4?si=S8pAc-Zfbr78CJB8 https://github.com/NC7-BleuAuction 2주간의 짧은 맛보기 프로젝트가 끝나고 본격 최종 프로젝트에 들어갔다. 대망의 주제선정. 1차 프로젝트 당시엔 정해진 주제가 있어서 고민할 필요없이 바로 작업에 들어갔는데 이번에는 필수로 사용해야하는 AI 서비스만 주어지고 주제는 자율이었다. 다양한 주제가 나왔다. 참고 소스가 많은 중고거래부터 1차 프로젝트를 이어갈 수 있는 미술품 국제화거래 등등 그 중 가장 많은 표를 받은 것은 조장 님의 수산물 오픈 마켓 서비스 어플리케이션! 약간 생소한 주제였지만 수산물이라는 특이한 주제를 곁들이면서..

[SQL] JOIN

JOIN의 기준은 테이블 간 관계를 정의하고 어떤 열을 기준으로 두 테이블을 연결할 것인지를 지정하는 데 사용됩니다. JOIN은 일반적으로 두 테이블 간의 공통 열을 사용하여 수행됩니다. 이 공통 열은 두 테이블 간의 관계를 정의하고 데이터를 결합하는 데 사용됩니다. JOIN의 기준을 잡는 방법 공통 열 식별: 먼저, 어떤 열이 두 테이블 간에 공통 열인지 식별합니다. 이 공통 열은 데이터를 결합할 때 사용됩니다. 일반적으로 이 열은 두 테이블 간의 관계를 나타내는 열입니다. JOIN 유형 : INNER JOIN, LEFT JOIN (또는 LEFT OUTER JOIN), RIGHT JOIN (또는 RIGHT OUTER JOIN), FULL JOIN (또는 FULL OUTER JOIN) 등이 있습니다. 각..

ㅋㅌ 2023.09.17

9/15

깃 브랜치 바꾸려고 할때 에러뜬다면 현재 워킹디렉토리 변경사항을 저장 안 해서 그렇다. 그럼 스냅샷 (git add. git commit) 후 브랜치 바꿔야한다. branch - merge 헤더를 메인으로 옮긴 후 추가하고 싶은 브랜치를 불러옴. (Head-> main ) > git merge b1 현재 상태는 c2 이후 c3 외 변경 사항이 없기 때문에 그냥 헤드를 앞으로 보내는게 빠르다 프로젝트에서 merg할땐 지저분한 브랜치 상태 치우고 , rebase 해서 단일한 선으롤 만들어서 서버에 올리기 PS C:\Users\bitcamp\git\test> git merge b1 Merge made by the 'ort' strategy. c5.txt | 1 + c6.txt | 1 + 2 files chan..

git 사용

PS C:\Users\bitcamp\git\test-app> git branch b1 PS C:\Users\bitcamp\git\test-app> git branch b1 * main 꺼내기: checkout 작업끝나면 브랜치 날려버리깅 그때그때 브랜치따서 작업하기 PS C:\Users\bitcamp\git\test-app> git checkout b1 error: The following untracked working tree files would be overwritten by checkout: .idea/misc.xml .idea/modules.xml .idea/modules/app/test-app.app.main.iml Please move or remove them before you swit..

9/14

실행하는 폴더: build 컴파일 자바를 하면,, 소스- 메인- 자바에 들어있는 모든 자바파일을 컴파일해서 빌드에 둠 컴파일 테스트 하면 test에 들어있는 거 Gradle 빌드 도구 jar파일은 그레이들 다운 받는거? 그 컴퓨터에 그래이들이 설치되어이지 않아도 자동으로 다운받아서 설치. 레퍼파일 만드는 법: gradle wrapper 플러그인을 장착해야 작업들을 할 수 있음 . $ Gradle 빌드도구 1. java 플러그인 gradle compilejava 하면 main만 gradle compiletestjava 하면 main 컴파일하고 test 작업이 수행됨 . >gradle processResources: main의 resources 빌드 밑에 둠 >gradle processtestResource..