Spelling suggestions: "subject:"tolerância a falha (computação)"" "subject:"tolerância a falha (omputação)""
31 |
Tratamento de exceções no desenvolvimento de sistemas confiaveis baseados em componentesFerreira, Gisele Rodrigues de Mesquita 17 December 2001 (has links)
Orientador : Cecilia Mary Fischer Rubira / Dissertação (mestrado) - Universidade Estadual de Campinas, Instituto de Computação / Made available in DSpace on 2018-07-31T15:20:22Z (GMT). No. of bitstreams: 1
Ferreira_GiseleRodriguesdeMesquita_M.pdf: 4934748 bytes, checksum: 8d2dea1b2e68d1ecfb68677672b07524 (MD5)
Previous issue date: 2001 / Resumo: A adoção de uma metodologia adaptada à realidade de uma organização produtora de software é um fator decisivo para a geração de sistemas de alta qualidade que atinjam as necessidades dos clientes dentro de cronogramas e orçamentos previsíveis. Este trabalho apresenta uma metodologia para construção de sistemas tolerantes a falhas que faz uso de técnicas de tratamento de exceções para lidar com o comportamento excepcional do sistema e manter a confiabilidade e disponibilidade dos serviços. Tal metodologia mantém a preocupação com as situações excepcionais e seus tratadores desde a especificação dos requisitos do sistema, se estendendo pelas atividades de projeto e implementação. Esta metodologia é chamada MDCE, um acrônimo para Metodologia para Definição do Comportamento Excepcional de um sistema confiável. A metodologia MDCE traz diretrizes e guias importantes de serem observados pelos analistas em cada fase de projeto de sistemas tolerantes a falhas. A notação adotada pela MDCE foi a UML estendida com novos estereótipos com semânticas e restrições específicas de sistemas tolerantes a falhas. Além disto, este trabalho apresenta como usar os próprios diagramas da UML para representar o comportamento excepcional de um sistema. MDCE é uma metodologia genérica que pode ser aplicada a modernos processos de desenvolvimento. Em particular, nesta dissertação aplicamos a metodologia MDCE ao Processo Catalysis e mostramos como nossa abordagem foi aplicada em um estudo de caso do Sistema de Mineração / Abstract: The adoption of a methodology for software development organization is a decisive factor for the production of high quality systerns that meet the client's needs and for the achievernent of a predictable schedule and budget. This work presents a methodology for fault-tolerant software development by means of exception handling techniques to deal with exceptional behavior in order to keep the availability and reliability of the systern' s services. This methodology considers the treatment of exceptional situations and their handlers since the outset during the requirernents specification phase and through design and irnplernentation phases. This methodology is called MDCE, Methodology of Exceptional Behavior Description, and encornpasses directives and guidelines that practitioners should evaluate in each developrnent phase of a fault-tolerant systern. The notation adopted by MDCE is UML extended with new stereotypes for modeling fault-tolerant systerns. This work also shows how to use UML dynamic diagrarns to represent exceptional behavior. MDCE is a generic methodology that can be adopted by modern development processes. In particularly, we have applied MDCE to the Catalysis Process and shown how our approach works for the Mining Systern case study / Mestrado / Mestre em Ciência da Computação
|
32 |
Serviços de comunicação para a plataforma multiwareConceição, Ladislau 06 October 1995 (has links)
Orientador: Eleri Cardozo / Dissertação (mestrado) - Universidade Estadual de Campinas, Faculdade de Engenharia Eletrica / Made available in DSpace on 2018-07-20T17:44:35Z (GMT). No. of bitstreams: 1
Conceicao_Ladislau_M.pdf: 7252231 bytes, checksum: 4b4cde4e17acaac6f53497e16779c0eb (MD5)
Previous issue date: 1995 / Resumo: A Plataforma Multiware é um modelo de referência para o suporte ao processamento distribuído aberto (ODP). Esta plataforma é dividida nas camadas de processamento local, middleware, groupware e de aplicação. A camada middleware tem a responsabilidade de prover as funcionalidades ODP e é composta por serviços de comunicação se constituem na base para o processamento distribuído. Os serviços providos são: comunicação com reserva de banda, comunicação em grupo e comunicação sem-conexão confiável. Este trabalho apresenta o projeto e implementação destes serviços de comunicação. O serviço de comunicação com reserva de banda provê comunicação para transmissão de dados multimídia, tais como áudio e vídeo. Neste trabalho foi projetado um protocola para operar sobre redes de tráfego assíncrono, tais como Ethernet e FDDI (sem tráfego síncrono). Um esquema de taken-possing foi utilizado para disciplinar o acesso ao meio. O serviço de comunicação em grupo (reliable multicast) é um aperfeiçoamento de um protocolo já existente. Nele foi incluído controle de fluxo e recuperação total em caso de falha do nodo seqüenciador. O serviço de comunicação sem-conexão confiável é um serviço de datagramas com reconhecimento. Normalmente, comunicação confiável é somente oferecida em serviços com conexão e serviços sem conexão não oferecem confiabilidade... Observação: O resumo, na íntegra, poderá ser visualizado no texto completo da tese digital / Abstract: The Multiware Platform is a reference model to support Open Distributed Processing (ODP). This platform is divided into layers, namely local processing, middleware, groupware, and application. The middleware layer is responsible for providing ODP functions, comprising communication services, kernel services, object service, and programming interface (API). The communication services ? namely bandwidth reservation communication, group communication, and reliable connectionless communication ? are the basis for the distributed processing. In this work these communication services were designed and implemented. The bandwidth reservation service provides support for multimedia communication, such as Ethernet and FDDI (without synchronous traffic). A token passing scheme was used to control the medium access. The group communication service is an improvement from a reliable multicast protocol. Flow control and full recovery sequencer crash were added to the protocol. The reliable communication is provided only in connection-oriented services and, and connectionless service does not provide only reliability... Note: The complete abstract is available with the full electronic digital thesis or dissertations / Mestrado / Mestre em Engenharia Elétrica
|
33 |
Processamento a fluxo de dados tolerante a falhas em um computador paraleloSilva, Jorge Luiz e 18 December 1992 (has links)
Orientadores: Shusaburo Motoyama, Claudio Kirner / Tese (doutorado) - Universidade Estadual de Campinas, Faculdade de Engenharia Eletrica / Made available in DSpace on 2018-07-17T11:53:47Z (GMT). No. of bitstreams: 1
Silva_JorgeLuize_D.pdf: 9332250 bytes, checksum: 7333ab47e718273c0c4a589b6727c50a (MD5)
Previous issue date: 1992 / Resumo: Este trabalho teve como objetivo analisar e desenvolver Programação a Fluxo de Dados Tolerante a Falhas em um computador paralelo estruturado recursivamente (CPER). O CPER é uma máquina paralela que possui uma estrutura básica constituída de N Elementos de Processamento (EP), interligados através de um barramento paralelo de alta velocidade, correspondendo ao barramento nível 1. Várias destas estruturas básicas interligadas através de um outro barramento constitui a estrutura do barramento nível 2. O uso recursivo desta mesma regra irá compor a estrutura hierárquica do CPER, que permite expansão, flexibilidade e alto grau de Tolerância a Falhas. Entretanto esta arquitetura pode não ser eficiente, se não utilizarmos conceitos de programação paralela. Propusemos então a Programação a Fluxo de Dados na estrutura hierárquica do CPER. Inicialmente apresentamos o hardware do CPER, e suas estruturas de alto desempenho. Em seguida, mostramos como o CPER opera para executar programas a fluxo de dados de forma dinâmica e mostramos também uma solução de software para garantir Tolerância a Falhas na programação a fluxo de Dados. Finalmente apresentamos um simulador (FDsim), e uma análise estocástica, que tiveram como objetivo mostrar viabilidade e eficiência da máquina paralela proposta / Abstract: In this work is analyzed the fault tolerant data flow processing in a computer based on hierarchical parallel buses. In this architecture, a set of N processors, each one called processing element (PE), are interconnected to a bus constituting a basic structure or cluster. The set of the buses of these basic structures correspond to the parallel buses leveI 1. Several basic structures of level 1 are interconnected to a bus constituting a cluster for the parallel buses leveI 2. The same idea can be recursively used to get parallel buses leveI M. This computer architecture based on hierarchical parallel buses permits the expansion flexibility and is highly fault tolerant computer. However, this architecture may not be efficient. If it is not utilized parallel programming concept. In this work we proposed the data flow processing for the execution of the programs in hierarchical parallel buses machine. First of alI, it is proposed hardware solution to get high throughput for inter-clusters and inter-Ievels communications in hierarchical parallel buses machine. FOllowing, it is discussed how the parallel buses computer can work as a dynamic data flow machine and it is proposed software solution to get fault tolerant processing. Finally, a software simulation is carried out to show the feasibility and efficiency of proposed parallel buses machine / Doutorado / Doutor em Engenharia Elétrica
|
34 |
Uma taxonomia de sistemas de tolerância a falhas em ambientes de computação em nuvem open source /Andrade, Vinicius Santos. January 2019 (has links)
Orientador: Aleardo Manacero / Banca: Rafael Pasquini / Banca: Rodolfo Ipolito Meneguetti / Resumo: Computação em nuvem oferece serviços de computação por meio da internet, utilizando máquinas virtuais. A garantia de elasticidade e pagamento sobre demanda são os principais motivos para atrair pessoas para aderirem a esta tecnologia. Infelizmente, existem diversos fatores que podem ocasionar erros que poderão gerar falha(s) no serviço, sendo que muitas vezes tais falhas acabam ocasionando perda de dados, por exemplo. Para evitar transtornos além da própria falha do serviço é importante que o suporte de tolerância a falhas em computação em nuvem seja robusto, garantindo que o ambiente se recupere na íntegra, de maneira ágil e sem a necessidade de interferência do cliente ou até do administrador. Um ambiente de tolerância a falhas envolve inúmeras variáveis, tanto entre causas da falha como técnicas de tratamento, fazendo com que uma falha possa ser suprida de N maneiras. Na literatura é possível encontrar muitos trabalhos relacionados a tolerância falhas em nuvem, o que causa grande dificuldade em identificar pontos que podem ser melhorados em relação à falhas no ambiente. Neste trabalho é apresentada uma sistematização das inúmeras propostas para tratamento de falhas em uma infraestrutura de computação em nuvem encontradas na literatura, criando uma classificação por origem da falha e forma de tratamento, na qual se aponta ainda pontos fortes e fracos de cada abordagem. Essa sistematização serviu de base para a construção de um web site com informações objetivas sobre as... / Abstract: Cloud computing offers computer services over the internet using virtual machines. The guarantee of elasticity and payment on demand are the main reasons attracting people to join the technology. Unfortunately, there are a number of factors that may cause errors that could lead to service failure(s), with such failures often resulting in loss of data, for example. In order to avoid disruptions beyond the fault itself, it is important that the fault tolerance support is robust, ensuring that the environment is recovered in full, in an agile manner and without the need for customer, or even system's manager, interference. A fault tolerant environment deals with a myriad of variables related to the failure's cause or its treatment, implying that a failure can be managed through N approaches. One can find several papers describing approaches to solve cloud computing failures, which causes great difficulty in identifying points that can be improved in relation to the flaws in the environment. This work presents a systematic review of the methods for fault tolerance in a cloud computing infrastructure that are found in the literature, creating a classification based in the failure's cause and the solution's approach, including their strong and weak points. This systematization became the basis of a website containing objective information about the identified solutions, creating a prototype of a recommendation system for cloud computing managers / Mestre
|
35 |
Tolerância a falha em um ambiente de computação em nuvem open source /Martins, Henrique Pachioni. January 2014 (has links)
Orientador: Roberta Spolon / Banca: Antonio Carlos Sementille / Banca: Luis Carlos Trevelin / Resumo: A computação em nuvem é um conjunto de recursos e serviços oferecidos através da internet, entregues a partir de centros de dados localizados em todo o mundo. Com o rápido crescimento na área de computação em nuvem, aumenta a preocupação com a necessidade de serviços oferecidos e um grande desafio é implementar um ambiente tolerante a falhas. As principais questões de tolerância a falhas na computação em nuvem são a detecção e recuperação de falhas. Para combater esses problemas, muitas técnicas de tolerância a falhas são projetadas para reduzi-las. Gestores pagos oferecem esse tipo de suporte, mas os gestores open source não fornecem elementos que permitam tolerar falhas e deixam os usuários vulneráveis as falhas de um ambiente de tecnologia. O objetivo desse trabalho é desenvolver um mecanismo tolerante a falhas no OpenStack. Foi criado um mecanismo de redundância nas máquinas virtuais instanciadas nos nodes da nuvem, se um node apresentar uma falha transiente ou intermitente, a máquina virtual estará armazenada em um local seguro, aguardando que o node retorne de uma falha. O mecanismo desenvolvido é viável e eficiente, pois após um node se recuperar de uma falha, a máquina virtual não é perdida, voltando a ficar ativa para o usuário / Abstract: Cloud computing is a set of features and services offered over the internet, delivered from data centers located around the world. With the rapid growth in cloud computing, increases the concern about the need for services offered and a major challenge is to implement a faulttolerant environment. The main issues of fault tolerance in cloud computing are the fault detection and recovery. To combat these problems, many fault tolerance techniques are designed to reduce them. Paid managers offer this kind of support, but the open source managers do not provide evidence to tolerate failures and leave users vulnerable failures of a technology environment. The aim of this work is to develop a tolerant mechanism to failures in OpenStack. It was created a redundancy mechanism in virtual machines instantiated in cloud nodes, if a node present a transient or intermittent failure, the virtual machine will be stored in a safe place, waiting for the return of a node failure. The mechanism developed is feasible and efficient because after a node to recover from a failure, the virtual machine is not lost, getting back to the active user / Mestre
|
36 |
Uma abordagem arquitetural para tolerancia a falhas em sistemas de software baseados em componentesGuerra, Paulo Asterio de Castro 07 December 2004 (has links)
Orientador : Cecilia Mary Fischer Rubira / Tese (doutorado) - Universidade Estadual de Campinas, Instituto de Matematica, Estatistica e Computação Cientifica / Made available in DSpace on 2018-10-23T18:21:29Z (GMT). No. of bitstreams: 1
Guerra_PauloAsteriodeCastro_D.pdf: 774171 bytes, checksum: 40bc6212afd47f471ea86c9fe796b23c (MD5)
Previous issue date: 2004 / Resumo: Esse trabalho se concentra na inclusão do tratamento sistemático de requisitos de confiabilidade no desenvolvimento de sistemas críticos modernos como, por exemplo, automação bancária e comércio eletrônico. Tais sistemas evoluem rapidamente e estão sujeitos a fortes restrições de prazos e custos de desenvolvimento. Em conseqüência, o desenvolvimento desses sistemas críticos modernos geralmente é baseado em software de grande complexidade e que integra componentes de software já existentes. O desenvolvimento de sistemas confiáveis que dependem de software com tais características é um problema ainda em aberto. Esse trabalho contribui para a solução desse problema através de uma abordagem arquitetural para tolerância a falhas em sistemas de software baseados em componentes reutilizáveis. A abordagem proposta se desdobra em: (i) uma arquitetura de software baseada em componentes ideais tolerantes a falhas; (ii) uma solução arquitetural para transformar componentes de prateleira (Off-the-Shelf Components) em componentes ideais tolerantes a falhas; (iii) uma estratégia geral para tratamento de exceções em sistemas de software baseados em componentes; e (iv) a proposta de um ambiente integrado para desenvolvimento de software baseados em componentes, centrado na arquitetura do software e no processo de desenvolvimento. O presente trabalho inclui também a aplicação prática da abordagem proposta em diversos estudos de casos, incluindo sistemas de automação bancária reais desenvolvidos por uma empresa de software independente. Os resultados obtidos permitem concluir pela eficácia da abordagem proposta para elevar a confiabilidade de sistemas de software complexos e baseados em componentes reutilizáveis. Conclui-se também pela necessidade de um suporte de ferramentas especializadas que aumentem eficiência da abordagem proposta através da automação de métodos e sua melhor integração no processo de desenvolvimento de software / Abstract: This work concentrates on the systematic treatment of dependability requirements during the development of modern critical software systems, such as banking and electronic commerce. Such software systems constantly evolve and are constrained by short time-to-market and low development costs requirements. As a result, the development of these modern critical software systems is increasingly being based on the integration of preexisting components. The development of dependable systems built in this way is still an open problem. This work contributes to the solution of this problem by proposing an architectural approach for adding fault tolerance to software systems based on reusable components. The proposed approach includes: (i) a software architecture based on idealised fault tolerant components; (ii) an architectural solution for transforming off-the-shelf software components in idealised fault tolerant components; (iii) a general strategy for exception handling in component-based software systems; and (iv) a proposal for an integrated development environment for component-based software systems, which is processed- and architecture-centered. The present work also includes two case studies where the proposed approaches were applied, one of them being based on a banking software system developed by an independent software house. The results achieved during these case studies allow us to conclude that the approach proposed can increase the dependability properties of complex software systems built from reusable components. We also conclude about the need for more specialized tools to increase the effectiveness of the proposed approach and better integrate it within a software development process / Doutorado / Ciência da Computação / Doutor em Ciência da Computação
|
37 |
Planejamento de redes WDM resilientes em malha com compartilhamento de recursos de proteção para conexões com requisitos de disponibilidade sujeitas a múltiplas falhas / Dyson Pereira Júnior ; orientador, Manoel Camillo PennaPereira Junior, Dyson January 2012 (has links)
Tese (doutorado) - Pontifícia Universidade Católica do Paraná, Curitiba, 2012 / Bibliografia: p. 111-119 / As falhas de enlace de fibra óptica podem resultar em grande perda de dados em redes de comunicações ópticas de alta velocidade. A resiliência é de importância crítica ao assegurar elevados níveis de disponibilidade e pode torna-se uma questão importante. / ailures of fiber links can result in major loss of data in high speed optical communication networks. Survivability is of critical importance and assuring high levels of availability becomes an important issue. A typical approach to the design of resilien
|
38 |
Replicação reconfigurável em sistemas de tempo realAssis, Semíramis Ribeiro de 17 June 2010 (has links)
Submitted by LIVIA FREITAS (livia.freitas@ufba.br) on 2016-01-06T12:53:31Z
No. of bitstreams: 1
dissertacaoSemiramis.pdf: 1703442 bytes, checksum: 249a6b49d0fa9a27e654fca76469276b (MD5) / Approved for entry into archive by LIVIA FREITAS (livia.freitas@ufba.br) on 2016-01-11T19:21:12Z (GMT) No. of bitstreams: 1
dissertacaoSemiramis.pdf: 1703442 bytes, checksum: 249a6b49d0fa9a27e654fca76469276b (MD5) / Made available in DSpace on 2016-01-11T19:21:12Z (GMT). No. of bitstreams: 1
dissertacaoSemiramis.pdf: 1703442 bytes, checksum: 249a6b49d0fa9a27e654fca76469276b (MD5) / A automatizacao do processo de producao de uma fabrica necessita de sistemas computacionais mais robustos, disponiveis e confiaveis. Uma falha em um dos softwares responsaveis pelo controle da planta de produção pode ocasionar graves prejuízos financeiros e perda de matéria prima. A inclusão de técnicas de tolerância a falhas nos sistemas computacionais se torna, então, algo fundamental para evitar maiores danos as industrias na ocorrência de falhas nos sistemas citados. A redundância de software, por meio da replicação, tem por objetivo aumentar a disponibilidade de partes ou de todo um software através da distribuição e gerenciamento das partes replicadas em diversas maquinas da rede, garantindo que a aplicação principal não sofra uma parada devido a um único ponto falho. O trabalho proposto tem por objetivo o desenvolvimento e validação de um Gestor de Replicas, denominado GesRep, que tem a finalidade de prover o serviço de replicação de componentes e o gerenciamento das replicas criadas, através da técnica de replicação passiva.
As aplicações passíveis de utilizarem os serviços do Gestor são aquelas construídas
com base na arquitetura de componentes, utilizando o framework Component Integrated ACE ORB (CIAO), baseado no padrão de comunica cao distribu do CORBA. Uma aplicacao construida com base na arquitetura de componentes tem suas funcionalidades divididas em modulos distintos, tambem chamados componentes, o que facilita o reuso e incorporação de novas funcionalidades. A replicação, neste tipo de aplicação, e realizada pela duplicação dos módulos (componentes) essenciais para que, em caso de falhas, a aplicação se mantenha em funcionamento. Aplicações de controle e supervisão são críticas por estarem diretamente ligadas ao processo produtivo de uma fabrica, de modo que a ocorrência de falhas de software pode acarretar sérios danos a todo o processo produtivo. O framework Architecture for Control and Supervision (ARCOS), voltado para construção de aplicações do domínio supracitado e construído sobre a arquitetura de componentes, não possui nenhum serviço
de tolerância a falhas para as aplicações construídas sobre sua estrutura. Deste modo,o Gestor de Replicas proposto terão objetivo de suprir esta necessidade, aumentando o nível de disponibilidade e, consequentemente, de confiabilidade das aplicações. Os experimentos mostraram que o overhead de recuperação do sistema aptos a ocorrência de uma falha possui tempo satisfatório, não interferindo signicativamente na performance
de aplicações soft-realtime pertencentes ao dominio de controle e supervisao e reduzindo a parada do sistema por crash. Todo o processo de criacao, monitoramento e recuperação das replicas e feito de forma transparente ao usuário da aplicação.
|
39 |
Tolerância a falha em um ambiente de computação em nuvem open sourceMartins, Henrique Pachioni [UNESP] 17 November 2014 (has links) (PDF)
Made available in DSpace on 2015-09-17T15:24:33Z (GMT). No. of bitstreams: 0
Previous issue date: 2014-11-17. Added 1 bitstream(s) on 2015-09-17T15:47:39Z : No. of bitstreams: 1
000843909.pdf: 1725983 bytes, checksum: 8961a0361aee44adf0fec9bb5ca5f808 (MD5) / A computação em nuvem é um conjunto de recursos e serviços oferecidos através da internet, entregues a partir de centros de dados localizados em todo o mundo. Com o rápido crescimento na área de computação em nuvem, aumenta a preocupação com a necessidade de serviços oferecidos e um grande desafio é implementar um ambiente tolerante a falhas. As principais questões de tolerância a falhas na computação em nuvem são a detecção e recuperação de falhas. Para combater esses problemas, muitas técnicas de tolerância a falhas são projetadas para reduzi-las. Gestores pagos oferecem esse tipo de suporte, mas os gestores open source não fornecem elementos que permitam tolerar falhas e deixam os usuários vulneráveis as falhas de um ambiente de tecnologia. O objetivo desse trabalho é desenvolver um mecanismo tolerante a falhas no OpenStack. Foi criado um mecanismo de redundância nas máquinas virtuais instanciadas nos nodes da nuvem, se um node apresentar uma falha transiente ou intermitente, a máquina virtual estará armazenada em um local seguro, aguardando que o node retorne de uma falha. O mecanismo desenvolvido é viável e eficiente, pois após um node se recuperar de uma falha, a máquina virtual não é perdida, voltando a ficar ativa para o usuário / Cloud computing is a set of features and services offered over the internet, delivered from data centers located around the world. With the rapid growth in cloud computing, increases the concern about the need for services offered and a major challenge is to implement a faulttolerant environment. The main issues of fault tolerance in cloud computing are the fault detection and recovery. To combat these problems, many fault tolerance techniques are designed to reduce them. Paid managers offer this kind of support, but the open source managers do not provide evidence to tolerate failures and leave users vulnerable failures of a technology environment. The aim of this work is to develop a tolerant mechanism to failures in OpenStack. It was created a redundancy mechanism in virtual machines instantiated in cloud nodes, if a node present a transient or intermittent failure, the virtual machine will be stored in a safe place, waiting for the return of a node failure. The mechanism developed is feasible and efficient because after a node to recover from a failure, the virtual machine is not lost, getting back to the active user
|
40 |
Sistema de arquivos distribuído flexível e adaptável /Fernandes, Silas Evandro Nachif. January 2012 (has links)
Orientador: Renata Spolon Lobato / Banca: Sarita Mazzini Bruschi / Banca: Norian Marranghello / Resumo: Com o aumento do volume de dados e a incerteza dos recursos de hardware e software, a descentralização dos dados em sistema de arquivos surgiu com a finalidade de diminuir a probabilidade de perda total desses dados. Com isso, este trabalho propõe um modelo de sistema de arquivos distribuído que incorpora características de transparência, escalabilidade, tolerância a falhas, criptografia, suporte a hardware de baixo custo, facilidade na implantação e manipulação dos arquivos / Abstract: With the increasing volume of data and uncertainty of hardware and software resources, the decentralization of data in file systems came up with the aim of reducing the likelihood of total loss of such data. Thus, this paper proposes a model of distributed file systems that integrates features of transparency, scalability, fault tolerance, encryption, support for low cost hardware, easy management and handling of files / Mestre
|
Page generated in 0.0832 seconds