전체 글 684

싱글스레드, 멀테스레드

스레드란 - 프로세스가 할당받은 자원을 이용하는 실행 단위 싱글스레드, 멀티스레드 - code, data, file(heap)은 공통영역 - registers, stack, program counter은 개별영역 멀티스레드 장점 1. 응답성 : 작업의 일부가 중단되거나 긴 작업이 수행되더라도 프로그램의 수행이 계속됨 2. 자원공유성 : 자신이 속한 프로세스 내의 스레드들과 메모리와 자원을 공유 3. 경제성 : 프로세스를 새로 생성하는 비용보다 스레드를 새로 생성하는게 훨씬 경제적임. 4. 확장성 :멀티스레드의 경우 한 프로세스를 여러 프로세서에서 수행할 수 있음

CS/운영체제 2023.02.27

봉쇄형(blocking), 비봉쇄형(nonblocking), 동기식(synchronous), 비동기식(asynchronous),

봉쇄형, 비봉쇄형, 동기식, 비동기식* 봉쇄형(blocking) : 매인 프로세스가 다른 프로세스가 동작하는 동안 멈춤 * 비봉쇄형(non-blocking) : 메인프로세스가 다른 프로세스가 일하는 동안에도 멈추지 않음 * 동기식(synchronous) : 작업의 순서를 보장함. 작업의 순서를 보장해야하기 때문에 메인프로세스가 다른 프로세스의 작업완료를 지속적으로 확인함(관심을 가짐). * 비동기식(asynchronous) : 작업의 순서를 보장하지않음. 작업의 순서를 보장하지 않기때문에 메인프로세스가 다른 작업을 수행하고있고, 다른 프로세스 작업을 신경쓰지않음(비관심)

CS/운영체제 2023.02.17

소프트파싱, 하드파싱

라이브러리 캐시 - SGA(System Global Area) : 서버 프로세스, 백그라운드 프로세스가 공통으로 엑세스하는 데이터와 제어 구조를 캐싱하는 메모리공간 - 라이브러리 캐시 : SGA에 속해있는 내부 프로시저를 반복 재사용 할 수 있도록 캐싱해 두는 메모리 공간. 소프트파싱과 하드파싱 - SQL문을 실행하면, SQL이 라이브러리 캐시에 존재하는지 확인 - 이때 라이브러리 캐시에서 찾으면 곧바로 실행 => 소프트파싱 - 라이브러리 캐시에서 찾지 못하면, 최적화, 로우 소스 생성단계를 거침 => 하드파싱

DB/SQL 2023.02.12

옵티마이저 힌트 규칙

사용법 주석( /* */)에 +를 붙이는 방식으로 사용 SELECT /* +INDEX(table col) */ col1, col2, col3, col4 FROM table where col1==option1 주의사항 1. 인자를 나열할 때는 콤마 사용가능, 힌트와 힌트사이에는 사용 불가 아래는 가능 /* INDEX(a,b) INDEX(c,d)*/ 아래는 불가능(첫번째 힌트만 유효) /* INDEX(A), INDEX(B) */ 2. 태이블을 지정할 때 스키마명까지 명시하면 안됨 SELECT /*+ FULL(scima.table) */ FROM table 3. alias를 사용했으면, 힌트에서도 반드시 alias를 사용해야함 SELECT /*+ FULL(EMP) */ FROM EMP E

DB/SQL 2023.02.12

SQL 최적화 과정

SQL 최적화 과정 1. SQL파싱 1.1 파싱 트리 생성 : SQL문을 이루는 개별 구성요소를 분석해서 파싱 트리 생성 1.2. syntax 체크 : 문접적 오류가 있는지 확인 (사용 or 순서 바르지 않거나 누락된 키워드 확인) 1.3. semantic체크 : 의미상 오류가 있는지 확인 (존재하지 않는 테이블 사용 or 사용한 오브젝트 권한 있는지) 2. SQL최적화 : 옵티마이저가 통계정보를 바탕으로 다양한 실행경로를 생성하여 비교한 후 효율적인 방법 선택 3. 로우소스 생성 : SQL옵티마이저가 선택한 실행경로를 실제 실행 가능한 코드 또는 프로시저 형태로 포매팅 하는 단계 SQL 옵티마이저 최적화 단계 1. 사용자가 전달한 쿼리를 수행하는데 후보군이 될 만한 실행계획들을 찾음 2. 데이터 딕셔너..

DB/SQL 2023.02.12

웹브라우저의 캐시

쿠키 - 만료기한이 있는 key-value 저장소 - 4KB까지 저장가능 - 클라이언트와 서버 모두 만료기한 정할 수 있는데, 보통 서버에서 정함 로컬 스토리지 - 만료기한이 없는 key-value 저장소 - 10MB까지 저장가능 - 클라이엔트에서만 수정 가능 - 웹브라우저를 닫아도 유지되고, 도메인 단위로 유지되고 저장, 생성됨 - HTML5 지원하는 곳에서만 가능 세션 스토리지 - 만료기한이 없는 key-value 저장소 - 5MB까지 저장가능 - 클라이언트에서만 수정 가능 - 탭단위로 스토리지 생성, 탭 닫을 때 해당 데이터 삭제 - HTML5 지원하는 곳에서만 가능 비고 - 데이터베이스의 캐싱기능 - 메인 데이터베이스 위에 레디스(redis)데이터베이스 계층을 '캐싱계층'으로 둬서 성능향상

CS/운영체제 2023.02.04

메모리, 캐시

메모리란? - 데이터의 상태, 명령어를 기록하는 장치 - CPU(일꾼)가 계산을 담당하고, 메모리(작업장)은 기억을 담당 메모리의 계층 - RAM : 하드디스크로 부터 일정량의 데이터를 복사하여 임시저장하고, 이를 필요시마다 CPU에 빠르게 전달하는 역할 - 차수별 저장장치 (1) 1차 저장장치 : 휘발성 저장장치(레지스터, 캐시, 메인메모리) (2) 2차 저장장치 : 보조기억장치 (3) 3차 저장장치 : 백업 사본을 저장하기위해 다른 장치에 저장하는것(cd-rom, blue-ray) 캐시 1. 정의 - 데이터를 미리 복사해놓은 임시저장소. 빠른장치와 느린 장치의 속도차이에 따른 병목현상을 줄이기 위한 메모리 - 레지스터는 CPU와 램사이에 있는 캐시계층이고 램은 캐시메모리와 보조기억장치 사이에 있는 캐..

CS/운영체제 2023.02.04

CPU 구성요소 및 연산과정

CPU란? - CPU는 제어장치, 레지스터, 산술논리연산장치로 구성되어 있는 컴퓨터 장치를 말하며 인터럽트에 의해 단순히 메모리에 존재하는 명령어를 해석하는 일꾼. * 제어장치(CU: Control Unit) : 프로세스 조작을 지시하는 CPU의 한 부품 * 레지스터 : 레지스터는 CPU내부의 매우 빠른 임시기억장치를 가르킴. CPU와 직접 연결되어 있어 연산속도가 메모리보다 수십~수백배 빠름. CPU는 자체적 데이터 저장방법이 없으므로, 레지스터 거쳐 데이터 전달 * 산술논리연산장치 : 덧셈, 뺄셈 등 두 숫자의 산술연산과 베타적 논리합, 논리곱은 논리연산을 계산하는 디지털 회로 인터럽트 - 컨트롤러가 장치드라이버에게 작업이 완료됐다는 것을 알리고, CPU에게 이를 처리시키기 위해 CPU를 중지 시키는..

CS/운영체제 2023.02.03

linux(centOS)특정 버전 pip설치하기

보통의 경우, python을 설치하면 그에 따른 pip는 자동으로 설치된다. 하지만 환경설정등의 실수로 pip를 사용할 수 없을 경우 수동으로 pip를 설치해야한다. 특정버전 pip설치하기 1. pip설치 curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py python3.X get-pip.py 2. pip확인 위에서 설치한 파이썬 버전 3.x에 대한 pip가 설치된다. pip3.X로 필요한 패키지A를 설치하고, python3.X로 파이썬을 실행하면 패키지A가 실행된다. * 패키지 A를 설치하지 않은 다른 파이썬 버전 python3.Y로 파이썬을 실행하면 패키지 A가 실행되지 않음 pip3.X -V

CLI/터미널 2023.01.28

centos에 python 설치

yum update yum update 리눅스 개발환경 세팅 yum groupinstall "Development Tools" 파이썬 설치 //파이썬 설치 압축파일 다운(다른 버전을 다운받을 시 3.9.7대신 다른 버전을 넣으면 된다) wget https://www.python.org/ftp/python/3.9.7/Python-3.9.7.tgz //압축파일 압축 해제 tar xvfz Python-3.9.7.tgz //설치된 파이썬 디렉토리로 이동 cd Python-3.9.7 빌드 및 환경설정 - 파이썬관련 라이브러리나 프로그램 설치시 다시 빌드 및 환경설정을 수행해주어야 한다. //파이썬 소스파일 환경설정 ./configure //소스 컴파일 make //설치파일 실행 make altinstall 설치확..

CLI/터미널 2023.01.28

시스템콜, modebit

시스템콜 이란 운영체제가 커널에 접근하기 위한 인터페이스이며 유저프로그램이 운영체제의 서비스를 받기위해 커널함수 호출시 사용 => 이 과정을 통해 컴퓨터자원에 대한 직접접근차단, 프로그램을 다른 프로그램으로 부터 보호함 => 응용프로그램과 커널을 이어주는 시스템. 유저모드상의 응용프로그램이 커널함수를 사용하고자 할 때 커널모드로 전환하고 커널함수를 수행한후 다시 유저모드로 전환할 때 사용 MODEBIT 시스템콜이 작동할 때 유저모드와 커널모드로 구분하는 플레그. 카메라, 키보드등 I/O디바이스를 운영체제를 통해서만(커널모드) 사용할 수 있게 하여 해킹으로 부터 사용자 장비를 보호 유저모드 : 유저가 접근할 수 있는 영역에 제한을 주어 컴퓨터자원에 함부러 침범하지 못하게 하는 모드 커널모드 : 컴퓨터의 모..

CS/운영체제 2023.01.28

운영체제의 역할과 구조

동찬찬과 함께하는 신나는 운영체제 스터디를 위한 기초공부 운영체제 박사가 되자운영체제의 역할1. CPU 스케쥴링 : CPU소유권을 어떤 프로세스에 할당할지 2. 메모리 관리 : 한정된 메모리를 어떤 프로세스에 얼만큼 할당해야 하는지 관리 3. 프로세스 관리 : 프로세스 생성과 삭제 자원할당 및 반환을 관리 4. I/O 디바이스 관리 : I/O 디바이스들인 마우스, 키보드와 컴퓨터간에 데이터를 주고받는 것을 관리 5. 디스크파일 관리 : 디스크파일을 어떠한 방식으로 보관할지 관리 운영체제의 구조- 기본구조유저프로그램 GUI=> 운영체제시스템콜커널드라이버(하드웨어를 제어하기위한 소프트웨어)하드웨어

CS/운영체제 2023.01.28