Computer Science51 [운영체제] 세마포어 (Semaphore)와 뮤텍스 (Mutex) gyoogle/tech-interview-for-developer 👶🏻 신입 개발자 전공 지식 & 기술 면접 백과사전 📖. Contribute to gyoogle/tech-interview-for-developer development by creating an account on GitHub. github.com 세마포어 (Semaphore) 멀티 프로그래밍 환경에서 공유 자원에 대한 접근을 제한하는 방법 세마포어 연산 P, V P : 임계영역 들어가기 전에 S=0이면 1이 될 때까지 기다리고, S가 1이 되면 0으로 만들어서 다른 프로세스가 진입하지 못하도록 한다. V : 임계영역에서 빠져나올 때 S를 1로 원위치 시켜서 다른 프로세스의 진입을 허용한다. S값을 몇으로 설정하느냐에 따라서 진입 가능한.. 2020. 11. 6. [소프트웨어공학] 리팩토링 (Refactoring) ※출처 : TOPCIT 에센스 리팩토링 (Refactoring) 외부의 프로그램 동작은 변경하지 않고 프로그램 내부 구조를 개선하는 것을 의미한다. 외부적 기능은 수정하지 않고 내부적 구조 및 관계를 단순화하여 소프트웨어의 유지 보수성을 향상시켜 품질을 높이는 것 코드스멜 (Code Smell) 개발자가 이해하거나 유지보수하기 어려워 리팩토링의 대상이 되는 코드 코드스멜의 종류 종류 설명 중복된 코드 기능, 데이터 코드가 중복되어 작성 너무 긴 메서드 메서드가 너무 길다 방대한 클래스 힌 클래스가 너무 많은 속성과 메서드를 가짐 과다한 매개변수 메서드의 매개변수가 너무 많음 두 가지 이유로 수정되는 클래스 클래스는 한가지 종류의 책임만을 가져야 하기에 2가지 이상의 이유로 수정되면 안된다. 여러 클래스를.. 2020. 11. 4. [소프트웨어공학] 역공학 (Reverse Engineering) ※출처 : TOPCIT 에센스 역공학 (Reverse Engineering) 이미 만들어진 시스템을 역으로 추적하여 처음의 문서나 설계기법 등의 자료를 얻어내는 일 소프트웨어 유지 보수 단계에서 실행 소프트웨어 생명주기 마지막 단계에서 얻어지는 프로그램, 문서 등을 통하여 생명주기 초기 단계의 문서, 정보를 얻어 내는 것을 말한다. 역공학이 필요한 경우 가동중인 시스템의 유지보수가 어려운 경우 변경이 자주 발생해서 시스템 효율이 저하된 경우 파일 시스템 → 관계형 데이터베이스로 재구축 하려는 경우 역공학의 장점 상용화되거나 개발된 소프트웨어의 분석을 도와준다. 기존 시스템의 자료, 정보를 설계 수준에서 분석할 수 있어서 유지 보수성 향상 2020. 11. 4. [운영체제] 가상 메모리와 페이지 교체 알고리즘 가상 메모리 디스크 (보조 기억 장치)를 가상의 논리적 메모리 공간으로 이용하는 방법이다. 다중 프로그래밍 환경에서 프로세스를 모두 메모리에 적재하기엔 물리적 메모리의 크기가 제한적이여서 나온 방법이다. 대부분 프로그램은 부분적인 적재만으로도 프로그램을 실행시킬 수 있는데 이러한 특징을 이용한 기법이 가상 메모리다. 즉, 프로세스 실행에 꼭 필요한 부분만 메인 메모리에 적재하고 나머지는 디스크에 저장한다. 요구 페이징 기법 가장 일반적인 가상 메모리 체계 프로그램을 실행 시 일부 페이지들만 메모리에 적재하고 요구하는 페이지를 메모리에 교체해가며 사용한다. 1. 요구 페이징 장점 다중 프로그래밍을 더 활성화시키고 접근하지 않은 페이지는 로드하지 않으므로 메모리를 절약할 수 있다. 프로그램 시작 시 로딩 지.. 2020. 11. 4. 이전 1 2 3 4 5 ··· 13 다음