본문 바로가기

분류 전체보기

(78)
[OS] Synchronization Tools - part1 Background Cooperating process share a logical address space → thread share data → share memory or msg passing 프로세스가 동시에 돌아가며 데이터를 공유하려면? 데이터의 일관성이 유지되야함 실행 순서가 지켜져야 데이터가 유지된다 데이터의 값이 모호해지는 경우 Concurrent execution : 프로세스가 작동 중에 다른 프로세스에게 넘기는 경우 Parallel execution : 분리된 CPU에서 프로세스가 동시에 돌아가는 경우 concurrently한 동작의 문제점(P-C모델의 비동기 상태) 기계어 과정으로 생각하면, 위의 과정이 순서대로 일어나지 않는다 . context switch는 끝까지 기다리지 않는다...
[OS] Scheduling Basic Concepts 멀티프로그래밍의 목적 다수의 프로세스가 계속 돌아가게하는 것 CPU utilization을 최대화 하는것 CPU Bound & I/O Bound CPU Bound는 CPU burst가 크다, I/O Bound는 그 반대. CPU Bound는 I/O Bound의 경우 보다 적게 일어난다. CPU burst는 실제로 CPU가 동작하는 시간이고, I/O burst는 입력을 기다리는 시간이다. CPU scheduler Ready 상태의 프로세스 중, CPU를 할당해주는 것. Ready 상태의 프로세스 대기열은 Priority Queue로 생성한다. Preemptive & Non-preemptive Preemptive scheduling은 선점하고 있는 프로세스 쫓아 내고 CPU의 자원..
[OS] Thread & Concurrency overview 💡 [single thread 상황에서 동작 방식] memory(fetch) - CPU(execute) - process의 반복으로 여러개가 동시에 memory에 올라감(multi programming) process들이 cpu를 time sharing을 해서 context switch(PC, reg..)를 하면서 concurrent하게 실행 multithreaded programming 장점 Responsiveness : nonblock으로 execution 계속 실행 Resource Sharing : data영역이 공유되므로, shared memory or msg-passing이 쉽다. Economy : 프로세스 복제가 필요없이, 안에서 thread-switching 등 쓰레드를 여러..
[OS] Process [공룡책의 OS introduction - OS Process(OS 프로세스) 부분을 요약한 내용입니다] Process Concept - 3.1 process란? 실행 중인 프로그램 운영체제 입장에서는 관리해야되는 단위. HDD 안에 있는 실행 파일은 CPU가 execute못한다. HDD가 instruction set으로 이루어진 시스템으로 메모리에 올라와 있을 때 process라고 한다. memory section text - data - heap - stack as a process executes, 상태변화 new - running - waiting - ready - terminated PCB(Process Control Block) or TCB 프로세스 관리하는 가장 좋은 방법은 PCB라는 구조체..
빅데이터를 지탱하는 기술 - Chapter1 빅데이터의 기초 지식 [빅데이터를 지탱하는 기술 - Chapter1을 요약한 내용입니다] [하둡이란] 기존 DW에서 적재/처리 모든 기능을 맡았다면, 하둡이 처리 프로세스 대신 부담해준다. [데이터파이프라인의 구축] ETL이란? 데이터가 생성되고, 목적에 맞게 가공되어 적재되는 일련의 프로세스를 통틀어서 말한다. 다양한 형태가 있지만 큰 틀에서는 간단하게 설명 할 수 있다. 데이터가 생성 혹은 가공 된다. 실시간으로 DB에 적재되거나, 일정량을 채운 후 적재 시킨다. 적재된 DB를 바로 사용하거나 DW등 더 큰 DB에 저장한다. 위 프로세스를 목적에 맞게 반복하거나, 데이터를 활용해 산출물을 낸다. 애드혹 분석 or 대시보드도구 DB에서 일회성 분석을 목적으로 데이터를 가져오거나, 대시보드 도구를 이용해서 정기적으로 가져온다..
[OS] Structure [공룡책의 OS introduction - OS struction(OS 구조) 부분을 요약한 내용입니다] [운영체제의 정의] H/W - OS - application application을 관리해준다. 중간매개자 역할 항상 작동하는 컴퓨터, 커널 system program, application program을 인터페이스를 제공해준다. 정보처리방법 최소단위 : bit 정보의 처리 : 정보의 상태 변환, 부울 대수 - 논리게이트 - 논리회로(무어의 법칙, 황의 법칙) 정보의 저장,전송 : 플립-플롭, 데이터 버스 [Classical Computer-System Organization] - 1.2 > 💡 bus를 이용하여 각 하드웨어에 맞는 시스템 구성요소와 통신. bootstrap program 파워가 켜..
Mybatis Guide JDBC를 모른다면, 아래 링크를 보고와주세요. https://moo-on.github.io/java/JDBC-Start-Guide/ Mybatis란? DB access을 더 쉽게 도와주는 개발 프레임워크이다. JDBC로 DB에 access에 하는 작업을 캡슐화하며, 일반SQL쿼리, 저장프로시져 및 고급 매핑을 지원하며 모든 JDBC코드 및 매개변수의 중복 작업을 제거합니다. 디자인적으로도 SQL쿼리들을 분리해 한 곳에 모아두어 분리 시킬 수 있습니다. JDBC의 단점(중요코드 노출, 개발속도, 자바소스&SQL소스 혼합)을 극복. 기본 환경 구성 & 사용법 기본 모듈이 아니기에, Mybatis jar파일을 다운로드 후에 lib폴더 안에 넣어줘야 한다. Mybatis를 사용하려면 위에 보이는 3가지 파일이..
JDBC Guide JDBC란? JDBC사용법 JDBC란? 다양한 DB들을 java언어 안에서 사용 할 수 있는 interface이다. 즉, DB측에서 JDBC interface의 형식으로 DB와 송신할 수 있는 api를 만드는 것이다. 구성환경 각 DB에서 connector를 배포하고 있다. tomcat 디렉토리 lib안에 넣어서 사용하면 된다. 기본 연결 객체 private Connection conn; private PreparedStatement ps; private ResultSet rs; 위 3개의 객체가 DB와 커넥션을 해준다. // 데이터베이스 연결객체 생성 public void getConnect() { String URL = "jdbc:mysql://localhost:3306/test"; String us..