CS

CS/운영체제

[5주차] 물리 메모리, 가상 메모리

물리 메모리메모리 관리자가 하는 일메모리 관리자는 메모리 관리 유닛(MMU)라는 하드웨어이다.메모리 관리자의 작업은 가져오기, 배치, 재배치를 수행한다.가져오기(fetch)프로세스외 데이터를 메모리로 가져온다.요청할때 메모리로 가져오거나, 미리 가져오는 방법이 있다.배치 작업 (placement)가져온 프로세스를 메모리의 어느 위치에 올려놓을지 결정한다.페이징 : 메모리를 같은 크기로 자르기세그먼테이션: 프로세스의 크기에 맞게 자르기재배치 작업 (replacement)메모리에 새로운 프로세스를 가져오기 위해 오래된 프로세스를 내보내는 작업앞으로 사용하지 않을 프로세스를 내보내면 시스템의 성능이 올라가지만, 자주 사용할 프로세스를 내보낸면 성능이 떨어진다.교체 알고리즘 : 앞으로 사용하지 않을 프로세스를 ..

CS/운영체제

[4주차] 프로세스 동기화, 교착 상태

프로세스 동기화병행성(동시성)에 대해 설명해주세요.작업이 동시에 실행되는 것처럼 보인다.싱글 코어 : 시분할 기법(time-slicing)을 사용하여 cpu 시간을 나누어 사용한다.멀티 코어: 물리적으로 병렬로 동작할 수 있다. (실제 병렬 처리 가능) 병행 프로세스프로세스 여러개가 실제로 동시에 실행되는 것각 프로세스는 독립적으로 작업을 수행하거나 다른 프로세스와 협력하면서 특정 기능을 수행한다.병행 프로세스는 제한된 자원을 공유하기 위해 자주 상호작용한다.상호작용하는 프로세스들은 순서에 맞게 실행되도록 동기화시켜야한다.영역진입 영역 : 해당 자원의 임계영역에 들어갈 수 있는지 요청임계 영역 : 공유 자원 접근 순서에 따라 실행 결과가 달라지는 부분출구 영역: 임계영역에서 수행을 마치고 나갈 프로세스를..

CS/운영체제

[3주차] CPU 스케줄링

CPU 스케줄링CPU 스케줄링에 대해 설명해주세요.운영체제가 프로세스들에게 공정하고 합리적으로 CPU 자원을 배분하는 것여러 프로세스의 상황을 고려하여 CPU와 시스템 자원을 어떻게 배분할지 결정한다.어떤 프로세스에게 CPU를 할당할것인가?CPU 스케줄러 = 프로세서 스케줄러 스케줄러의 종류는 무엇이 있나요?고수준 스케줄링 (장기 스케줄링, 작업 스케줄링) : 시스템 내의 전체 작업 수를 조절하는 것작업은 여러개의 프로세스로 이루어질 수 있다.어떤 작업을 시스템이 받아들일지 결정한다.실행 가능한 프로세스의 총 개수가 정해진다.중수준 스케줄링 : 전체 시스템의 활성화된 프로세스 수를 조절하여 과부하를 막는다.시스템에 과부하가 걸려서 전체 프로세스 수를 조절해야한다면, 이미 활성화된 프로세스 중 일부를 보류..

CS/운영체제

[2주차] 프로세스와 스레드

프로세스와 스레드📎 프로세스프로그램에 대해 설명해주세요.저장장치에 저장되어 있는 데이터, 정적인 상태하드디스크 같은 저장장치에 보관되어 있다가 마우스로 더블클릭하면 실행된다. 프로세스에 대해 설명해주세요.프로그램을 메모리에 적재하여 실행, 동적인 상태실행중인 프로그램컴퓨터 시스템의 작업 단위(task)프로세스 종류포그라운드 프로세스 : 사용자가 보는 앞에서 실행되는 프로세스사용자와 상호작용백그라운드 프로세스(=daemon): 사용자의 뒷편에서 실행되는 프로세스 프로그램 -> 프로세스운영체제는 프로그램을 메모리의 사용자 영역의 적당한 위치로 가져온다.동시에, 커널 영역에 프로세스 제어 블록(PCB)를 생성하여 프로세스를 처리하는데 필요한 정보를 기록한다.프로세스가 종료되었을 경우 프로세스가 메모리에서 삭..

CS/운영체제

[1주차] 운영체제 개요 & 컴퓨터 시스템 동작원리

운영체제 개요 & 컴퓨터 시스템 동작원리 운영체제는 무엇이고 어떤 역할을 수행하는지 설명해주세요.운영체제란 실행할 프로그램에 필요한 자원을 관리하고 사용자에게 편리한 인터페이스를 제공하는 소프트웨어이다.운영체제는 사용자 인터페이스를 제공하여 하드웨어와 사용자 사이 중개자 역할을 한다.GUI(Graphical User Interface)를 통해 마우스를 이용해 조작할 수 있다. 운영체제 역할자원 관리키보드, 네트워크 카드 등의 자원을 응용 프로그램에 나누어주고 적당한 순서로 자원을 배분하고 회수한다.자원 보호악의적인 사용자나 미숙한 사용자로부터 자원을 보호한다.하드웨어 인터페이스 제공운영체제는 하드웨어 인터페이스를 제공하여 다양한 하드웨어를 표준화된 인터페이스를 통해 통신할 수 있다.운영체제는 각 하드웨어..

CS/데이터베이스

[데이터베이스] 트랜잭션, 동시성 제어

트랜잭션 DBMS가 데이터베이스를 다룰 때 사용하는 작업(프로그램)의 단위 트랜잭션은 일반 프로그램과 달리 데이터베이스의 데이터를 다루기 때문에 데이터베이스의 무결성을 유지해야한다. 트랜잭션은 ACID 성질을 갖는다. DBMS는 트랜잭션이 이러한 성질을 유지할 수 있도록 지원한다. 트랜잭션의 개념 트랜잭션 : DBMS에서 데이터를 다루는 논리적인 작업의 단위 보통 단일 sql문을 사용하여 데이터를 다루기도 하지만, 여러 개의 sql문을 순차적으로 수행하여 데이터를 다루기도 한다. 트랜잭션 정의하는 이유 데이터베이스에서 데이터를 다룰 때 장애가 발생할 경우, 트랜잭션은 장애 시 데이터를 복구하는 작업의 단위 데이터베이스에서 여러 작업이 동시에 데이터를 다룰 때, 트랜잭션은 이 작업을 서로 분리하는 단위 트..

CS

[데이터베이스] 정규화 (이상현상, 함수 종속성, 무손실 분해)

이상현상 이상현상 : 테이블에 투플을 삽입할때 부득이하게 NULL 값이 입력되거나, 삭제시 연쇄삭제 현상이 발생하거나, 수정시 데이터의 일관성이 훼손되는 현상을 말한다. 잘못 설계된 테이블로 삽입, 삭제, 수정 같은 데이터 조작을 하면 이상현상이 일어난다. 조회시에는 이상현상이 일어나지 않는다. 이상현상의 종류 데이터베이스 설계가 잘못되면 이상현상, 즉 SQL문의 결과가 틀리거나 원하는 결과가 나오지 않는 등의 문제가 발생한다. 예시 테이블 CREATE TABLE Summer (sid INTEGER, class VARCHAR(20), price INTEGER ); 학생번호, 수업명, 수업료 => 학생정보와 수업 정보가 함께 저장된다. 설계가 잘못된 테이블이다. 삽입 이상 투플 삽입 시 특정 속성에 해당하..

CS/데이터베이스

[데이터베이스] 인덱스 + 심화 (커버링 인덱스, 실행 계획, 인덱스 스캔)

인덱스 인덱스란? 인덱스는 데이터베이스 테이블의 하나 이상의 컬럼을 기반으로 생성된다. 인덱스는 컬럼의 값과 레코드 주소를 key - value로 가지고 있는 정보이다. 인덱스를 통해 데이터베이스의 레코드를 빠르게 조회할 수 있다. 인덱스는 빠른 조회를 위해 내부적으로 트리 구조(B-Tree, B+Tree)를 사용하여 키 값을 정렬된 상태로 유지한다. 새로운 레코드가 삽입되거나 기존 레코드가 수정될 경우 인덱스도 그에 맞춰 업데이트되어야한다. 이 과정에서 추가적인 연산이 발생하므로, 이로 인해 레코드의 삽입, 수정, 삭제 성능이 저하될 수 있다. 인덱스 동작 방식 B-Tree 인덱스를 기준으로, 인덱스가 걸린 컬럼이 조건으로 들어왔을 경우를 가정한다. 루트 노드 -> 브랜치 노드(내부 노드) -> 리프 ..

mint*
'CS' 카테고리의 글 목록