School/컴퓨터시스템 8

중간고사

진수간 변환(10진수-2진수, 10진수 소숫점 어떻게 처리하는지도 알아보기) 2진수 음수표현(보수) 2진수 뺄셈 2의 보수 연산 하이 임피던스 V = IR 이므로 I = V/R 저항값을 키우게 되면 전류는 0에 수렴하게 됨 데이터를 다른 곳으로 보내야 할 때, 데이터를 받아야 하는 곳을 제외한 모든 곳에 큰 저항을 걸어주면 전류가 데이터를 받아야하는 곳으로만 흐르기 때문에 데이터 전송에 주로 사용한다 XOR 1이 홀수개 존재할때 output 값이 1 감가산기 4비트 병렬 감가산기의 경우, 4개의 전가산기와 1비트의 입력신호로 구성 SR래치 이전 계산값을 기억하는 기억소자 입력값이 (1,1) 이게 되면 Q, not Q 가정에 위배됨 이 문제를 해결하기 위해 JK래치, (1,1) 인 경우 Q의 보수 출력 D..

자료구조

순차 자료구조 구현할 자료들을 논리적 순서로 메모리에 연속 저장하는 구현 방식 논리적 순서 == 물리적 순서 순차 자료구조의 구현 방식을 제공하는 프로그램 기법 = 배열 리스트 :자료를 나열한 것 선형 리스트 선형 리스트의 ... 표현 순서 리스트 이용 (자료 간 순서 가짐) 저장 원소를 논리적인 순서대로 메모리에 연속하여 저장 원소 삽입 step1. 삽입할 빈자리 만들기 : 삽입할 자리 이후의 원소들을 한 자리씩 뒤로 자리 이동 -> 물리적 순서 == 논리적 순서 step2. 준비한 빈 자리에 원소 삽입 원소 삭제 step1. 삭제 step2. 한 자리씩 앞으로 이동 -> 물리적 순서 == 논리적 순서로 만듦 문제점 1. 연산시간 문제 삽입 or 삭제 연산 후 연속적 물리 주소를 유지해야함 -> 원소 ..

프로세스 동기화

프로세스 간 통신의 종류 이름 프로세스 내부 데이터 통신 프로세스 간 데이터 동신 네트워크 이용한 데이터 통신 설명 1개 프로세스 내에 존재하는 2개 이상의 스레드끼리의 통신 1개 컴퓨터 안에 있는 여러 프로세스끼리의 통신 1개 네트워크로 연결된 여러 컴퓨터끼리의 통신 통신수단 전역변수 파일 공용파일 운영체제가 제공하는 파이프 소켓 * 전역변수는 단방향 통신 전역변수가 양방향 통신이게 되면 전역변수에 데이터를 여러 곳에서 보내게 되고, 실제로 받아야 할 데이터가 유실될 가능성이 있기 때문 공유 자원의 접근 공유자원 : 여러 프로세스가 공동으로 이용하는 변수, 메모리, 파일 등 공동으로 이용되기 때문에 누가 언제 데이터를 읽고 쓰냐에 따라 결과값이 달라질 수 있음 임계구역 공유 자원 접근 순서에 따라 실행..

CPU 스케줄링

CPU 스케줄링 여러 프로세스의 상황을 고려하여 CPU와 시스템 자원의 배정을 결정 선점형 스케줄링과 비선점형 스케줄링 구분 선점형 비선점형 작업방식 실행 상태에 있는 작업을 중단시키고 새로운 작업을 실행하는 것이 가능 어떤 프로세스가 실행 상태에 들어가 CPU를 사용하게 되면 해당 작업이 완료될때까지 다른 작업 불가능 장점 프로세스가 CPU를 독점할 수 없기 때문에 빠른 응답시간을 요구하는 대화형 시스템이나 시분할 시스템에 적합 CPU 스케줄러의 작업량이 적고, 문맥 교환의 오버헤드가 적음 단점 문맥 교환의 오버헤드가 많음 기다리는 프로세스가 많아 처리율 떨어짐 사용 시분할 방식 스케줄러에 사용 일괄 작업 방식 스케줄러에 사용 중요도 높음 낮음 프로세스 우선순위 커널 프로세스의 우선순위가 일반 프로세스..

스택, 큐, 덱

스택(stack) 자료를 차곡차곡 쌓아 올린 형태의 자료구조 스택에 저장된 내용은 top 에서만 접근 가능 = top 의 위치에서만 원소를 삽입/삭제 - 먼저 삽입한 원소는 밑에 쌓이고, 나중에 삽입한 원소는 위에 쌓이는 구조 마지막에 삽입(Last in)한 원소는 맨 위에 쌓여있다가 가장 먼저 삭제(First out) : LIFO * push : 삽입, pop : 삭제 시스템 스택 프로그램에서 호출과 복귀에 따른 수행 순서 관리 가장 마지막에 호출된 함수가 가장 먼저 실행 완료 후 복귀(후입선출) 함수 호출 발생 -> 호출 함수 수행에 필요한 변수, 수행 후 복귀할 주소 등의 정보를 스택에 저장 -> 시스템 스택에 삽입 함수 실행 종료 -> 시스템 스택의 top 원소 삭제하면서 프레임에 저장되어있던 복..

스레드

스레드의 정의 프로세스의 코드에 정의된 절차에 따라 CPU 스케줄러가 CPU에 작업을 요청하는 실행 단위 프로세스끼리는 약하게 연결되어있는 반면, 스레드끼리는 강하게 연결 멀티태스킹 멀티스레드 여러개의 프로세스를 동시에 구성하는 것 운영체제가 CPU에 작업을 줄 때 시간을 잘게 나누어 배분하는 기법 (time slice) 하나의 프로세스가 여러개의 스레드로 구성된 것 프로세스 내 작업을 여러개의 스레드로 분할함으로써 작업의 부담을 줄임 EX) 한글 내 문서편집, 문서입출력, 사전, 맞춤법검사 ... 멀티태스킹을 하게되면 fork() 시스템 호출로 여러개의 프로세스를 만들면 필요 없는 정적 영역이 여러개가 됨 멀티스레드는 코드, 파일 등 자원을 공유하면서 자원의 낭비를 막고 효율성 향상 (하나의 프로세스를..

프로세스

프로그램과 프로세스 프로그램 : 저장장치에 저장되어있는 정적인 상태 프로세스 : 실행을 위해 메모리에 올라온 동적인 상태 프로그램에서 프로세스로의 전환 프로세스 제어 블록(Process Control Block, PCB) 운영체제가 해당 프로세스를 위해 관리하는 자료 구조 자료구조에 프로세스 실행하는데 필요한 중요한 정보를 보관 - 프로세스 구분자 : 각 프로세스를 구분하는 구분자 - 메모리 관련 정보 : 프로세스의 메모리 위치 정보 - 각종 중간값 : 프로세스가 사용했던 중간값 ... 아무튼 프로세스 관련 정보만 들어가야함 모든 프로세스는 고유의 프로세스 제어 블록을 가진다 프로세스 생성 시 만들어져서 프로세스가 실행을 완료하면 폐기한다 * 포인터가 필요한 이유 : 대기상태에서 같은 입출력을 요구한 프..

운영체제

운영체제의 정의 응용프로그램이나 사용자에게 컴퓨터 자원을 활용할 수 있는 인터페이스 제공. 그 결과를 돌려주는 시스템 sw 응용 프로그램이나 사용자에게 모든 컴퓨터 자원을 숨기고 정해진 방법으로만 컴퓨터 자원을 사용할 수 있도록 제한 -> 1명이 독점해서 사용하는 것을 방지하고, 사용자 편의를 위해 복잡한 절차를 대행해준다고 생각하면 됨 운영체제의 역할과 목표 역할 목표 자원 관리 - 컴퓨터 시스템의 자원을 응용프로그램에 나누어주어 사용자가 원활하게 작업할 수 있도록 함 - 자원을 요청한 프로그램이 여러개라면, 적당한 순서로 자원을 배분하고 적절한 시점에 자원을 회수하여 다른 응용프로그램에 나누어줌 효율성 - 자원을 효율적으로 관리하는 것 - 같은 자원을 이용하여 더 많은 작업량을 처리 or 같은 작업량..