본문 바로가기

CS118

순서논리회로의 분석, 상태표, 상태도 1. 순서논리회로의 분석 순서논리회로의 분석 - 주어진 순서논리회로의 입출력 관계를 규명 - 그러나 시간지연요소인 플립플롭이 포함되어 있으므로 회로의 시간적 변화를 고려해야 함 - 즉 회로 동작의 시간적 변화를 상태-현재상태-다음상태로 표현해야 함 따라서 순서논리회로의 동작은 입출력 상태와 플립플롭의 상태에 따라 결정되므로, 플립플롭의 상태와 입출력 상태의 시간적 변화를 적절히 나타내야 한다. => 결국 순서논리회로의 분석은 상태표를 완성하는 것 순서논리회로의 상태표를 작성하기 위해서는 플립플롭의 상태변화를 알아야 한다. - 상태변화는 플립플롭에 들어오는 입력을 알면 구할 수 있다. - 플립플롭의 입력은 입력방정식으로 표현된다. 플립플롭의 입력은 조합논리회로의 출력이 연결된다. 따라서 플립플롭의 입력방적.. 2023. 6. 15.
순서논리회로, 플립플롭, SR래치, D 플립플롭, JK 플립플롭, T 플립플롭, 플립플롭의 트리거링 1. 순서논리회로의 개요 조합논리회로: 현재 시간의 입력에 의해 출력이 결정 순서논리회로: 조합논리회로에 저장요소를 추가한 회로 순서논리회로는 외부로부터 2진 정보를 전달받게 되고, 이 외부로부터의 입력은 저장요소에 저장된 현재 상태와 함께 출력의 2진 값을 결정한다. 비동기 순서논리회로 - 시간지연소자를 사용 - 시간지연소자는 신호가 전달되려면 일정한 시간이 걸리므로 기억능력을 갖게 됨 - 논리게이트로 구성되는 시간지연소자는 게이트간의 피드백 때문에 예측 못한 상태로 동작하거나, 불안정한 상태가 발생되기도 함 - 이러한 이유로 자주 사용되지 않음 동기 순서논리회로 - 특정 순간에서만 저장요소를 내용을 변화시킬 수 있는 신호를 사용 -> 클럭 펄스 (1과 0으로 이루어져 있음) - 이러한 클럭 펄스는 시.. 2023. 6. 15.
병행 프로세스의 여러가지 문제들, 생산자-소비자, 판독기-기록기, 자바 구현 코드, 프로세스 간 통신 1. 생산자-소비자 문제 - 두 협력 프로세스 사이에 버퍼를 두고 생산자와 소비자의 상황을 다루는 문제 - 생산자: 데이터를 넣느 프로세스 - 소비자: 데이터를 꺼내는 프로세스 버퍼에 여러 프로세스가 동시에 접근할 수 없음 - 버퍼에 데이터를 넣는 동안에는 데이터를 꺼낼 수 없음 - 버퍼에서 데이터를 꺼내는 동안에는 데이터를 넣을 수 없음 -> 상호배제 필요 버퍼의 크기가 유한 (유한 버퍼 문제) - 버퍼가 가득 찬 경우 생산자는 대기해야 함 - 버퍼가 빈 경우 소비자는 대기해야 함 -> 동기화 필요 상호배제: 세마포어 mutex를 이용 (초깃값 1) 버퍼가 가득 차 경우 동기화: 세마포어 empty(초깃값 n) // n: 버퍼 크기 버퍼가 빈 경우 동기화: 세마포어 full (초깃값 0) 따라서 3개의.. 2023. 6. 15.
운영체제의 병행 프로세스, 병행성 문제, 세마포어, 상호배제와 동기화 해결 세마포어 자바 구현 코드 1. 병행 프로세스 병행성(Concurrency) => 여러 개의 프로세스 또는 쓰레드가 동시 수행되는 시스템의 특성 병행 프로세스: 동시 수행되는 여러 개의 프로세스 또는 쓰레드 1개의 CPU: 인터리빙 형식 => CPU 입장에서는 순차적으로 처리하는 것 여러 개의 CPU: 병렬 처리 형식 멀티 프로세서 시스템에서의 메모리 구조에 따라 - 강결합 시스템 (공유 메모리 구조) - 약결합 시스템 (분산 메모리 구조) 약결합 시스템에서는 CPU 마다 별도 메모리를 갖는 것. 독립 프로세스 - 수행중인 다른 프로세스에 영향을 주지도 받지도 않음 - 데이터 및 상태를 다른 프로세스와 공유하지 않음 - 프로세스의 실행 -> 결정적: 실행 결과는 입력에 의해서만 결정됨 -> 재생가능 : 같은 입력에 대해 항상 동일.. 2023. 6. 15.
프로세스 스케줄링, 운영체제 스케줄링 알고리즘 1. 프로세스 스케줄링 스케줄링 - 여러 가지 작업의 처리순서를 결정하는 것 - 예: 프로세스 스케줄링, 디스크 스케줄링 등 프로세스 스케줄링 - 주어진 프로세스가 여러 개인 경우, 프로세스 처리순서를 결정하는 것 상위단계 스케줄링 : 시스템의 자원을 효율적으로 이용할 수 있게 함 활성화된 작업들 내에서 하위단계 스케줄링 => 준비큐에서 CPU와 조율 중간단계 스케줄링: 시스템에 대한 단기적인 부하를 조절하도록 함 하위 단계 스케줄링 - 준비 큐에 있는 프로세스를 선택하여 사용 가능한 CPU를 할당(디스패치)하는 역할 - 수행 주체: 디스패처(dispatcher) 스케줄링의 기본 목표 - 공정성: 모든 프로세스가 적정 수준에서 CPU 작업을 할 수 있게 함 - 균형: 시스템 자원이 충분히 활용될 수 있게.. 2023. 6. 15.